diff --git a/backend/init/init.go b/backend/init/init.go
index 3853fbea0..8f70a1f81 100644
--- a/backend/init/init.go
+++ b/backend/init/init.go
@@ -22,6 +22,7 @@ import (
backendHTTP "github.com/hashicorp/terraform/backend/remote-state/http"
backendInmem "github.com/hashicorp/terraform/backend/remote-state/inmem"
backendManta "github.com/hashicorp/terraform/backend/remote-state/manta"
+ backendOSS "github.com/hashicorp/terraform/backend/remote-state/oss"
backendPg "github.com/hashicorp/terraform/backend/remote-state/pg"
backendS3 "github.com/hashicorp/terraform/backend/remote-state/s3"
backendSwift "github.com/hashicorp/terraform/backend/remote-state/swift"
@@ -62,6 +63,7 @@ func Init(services *disco.Disco) {
"http": func() backend.Backend { return backendHTTP.New() },
"inmem": func() backend.Backend { return backendInmem.New() },
"manta": func() backend.Backend { return backendManta.New() },
+ "oss": func() backend.Backend { return backendOSS.New() },
"pg": func() backend.Backend { return backendPg.New() },
"s3": func() backend.Backend { return backendS3.New() },
"swift": func() backend.Backend { return backendSwift.New() },
diff --git a/backend/remote-state/oss/backend.go b/backend/remote-state/oss/backend.go
new file mode 100644
index 000000000..4b865543a
--- /dev/null
+++ b/backend/remote-state/oss/backend.go
@@ -0,0 +1,297 @@
+package oss
+
+import (
+ "context"
+ "fmt"
+ "github.com/aliyun/aliyun-oss-go-sdk/oss"
+ "github.com/hashicorp/terraform/backend"
+ "github.com/hashicorp/terraform/helper/schema"
+ "os"
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/resource"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+ "github.com/aliyun/alibaba-cloud-sdk-go/services/location"
+ "github.com/hashicorp/go-cleanhttp"
+ "github.com/hashicorp/terraform/version"
+ "log"
+ "net/http"
+ "strconv"
+ "time"
+)
+
+// New creates a new backend for OSS remote state.
+func New() backend.Backend {
+ s := &schema.Backend{
+ Schema: map[string]*schema.Schema{
+ "access_key": &schema.Schema{
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Alibaba Cloud Access Key ID",
+ DefaultFunc: schema.EnvDefaultFunc("ALICLOUD_ACCESS_KEY", os.Getenv("ALICLOUD_ACCESS_KEY_ID")),
+ },
+
+ "secret_key": &schema.Schema{
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Alibaba Cloud Access Secret Key",
+ DefaultFunc: schema.EnvDefaultFunc("ALICLOUD_SECRET_KEY", os.Getenv("ALICLOUD_ACCESS_KEY_SECRET")),
+ },
+
+ "security_token": &schema.Schema{
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Alibaba Cloud Security Token",
+ DefaultFunc: schema.EnvDefaultFunc("ALICLOUD_SECURITY_TOKEN", os.Getenv("SECURITY_TOKEN")),
+ },
+
+ "region": &schema.Schema{
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "The region of the OSS bucket.",
+ DefaultFunc: schema.EnvDefaultFunc("ALICLOUD_REGION", os.Getenv("ALICLOUD_DEFAULT_REGION")),
+ },
+
+ "endpoint": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "A custom endpoint for the OSS API",
+ DefaultFunc: schema.EnvDefaultFunc("ALICLOUD_OSS_ENDPOINT", os.Getenv("OSS_ENDPOINT")),
+ },
+
+ "bucket": &schema.Schema{
+ Type: schema.TypeString,
+ Required: true,
+ Description: "The name of the OSS bucket",
+ },
+
+ "path": &schema.Schema{
+ Type: schema.TypeString,
+ Required: true,
+ Description: "The path relative to your object storage directory where the state file will be stored.",
+ },
+
+ "name": &schema.Schema{
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "The name of the state file inside the bucket",
+ ValidateFunc: func(v interface{}, s string) ([]string, []error) {
+ if strings.HasPrefix(v.(string), "/") || strings.HasSuffix(v.(string), "/") {
+ return nil, []error{fmt.Errorf("name can not start and end with '/'")}
+ }
+ return nil, nil
+ },
+ Default: "terraform.tfstate",
+ },
+
+ "lock": &schema.Schema{
+ Type: schema.TypeBool,
+ Optional: true,
+ Description: "Whether to lock state access. Defaults to true",
+ Default: true,
+ },
+
+ "encrypt": &schema.Schema{
+ Type: schema.TypeBool,
+ Optional: true,
+ Description: "Whether to enable server side encryption of the state file",
+ Default: false,
+ },
+
+ "acl": &schema.Schema{
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Object ACL to be applied to the state file",
+ Default: "",
+ ValidateFunc: func(v interface{}, k string) ([]string, []error) {
+ if value := v.(string); value != "" {
+ acls := oss.ACLType(value)
+ if acls != oss.ACLPrivate && acls != oss.ACLPublicRead && acls != oss.ACLPublicReadWrite {
+ return nil, []error{fmt.Errorf(
+ "%q must be a valid ACL value , expected %s, %s or %s, got %q",
+ k, oss.ACLPrivate, oss.ACLPublicRead, oss.ACLPublicReadWrite, acls)}
+ }
+ }
+ return nil, nil
+ },
+ },
+ },
+ }
+
+ result := &Backend{Backend: s}
+ result.Backend.ConfigureFunc = result.configure
+ return result
+}
+
+type Backend struct {
+ *schema.Backend
+
+ // The fields below are set from configure
+ ossClient *oss.Client
+
+ bucketName string
+ statePath string
+ stateName string
+ serverSideEncryption bool
+ acl string
+ endpoint string
+ lock bool
+}
+
+func (b *Backend) configure(ctx context.Context) error {
+ if b.ossClient != nil {
+ return nil
+ }
+
+ // Grab the resource data
+ d := schema.FromContextBackendConfig(ctx)
+
+ b.bucketName = d.Get("bucket").(string)
+ dir := strings.Trim(d.Get("path").(string), "/")
+ if strings.HasPrefix(dir, "./") {
+ dir = strings.TrimPrefix(dir, "./")
+
+ }
+
+ b.statePath = dir
+ b.stateName = d.Get("name").(string)
+ b.serverSideEncryption = d.Get("encrypt").(bool)
+ b.acl = d.Get("acl").(string)
+ b.lock = d.Get("lock").(bool)
+
+ access_key := d.Get("access_key").(string)
+ secret_key := d.Get("secret_key").(string)
+ security_token := d.Get("security_token").(string)
+ region := d.Get("region").(string)
+ endpoint := d.Get("endpoint").(string)
+ schma := "https"
+
+ if endpoint == "" {
+ endpointItem, _ := b.getOSSEndpointByRegion(access_key, secret_key, security_token, region)
+ if endpointItem != nil && len(endpointItem.Endpoint) > 0 {
+ if len(endpointItem.Protocols.Protocols) > 0 {
+ // HTTP or HTTPS
+ schma = strings.ToLower(endpointItem.Protocols.Protocols[0])
+ for _, p := range endpointItem.Protocols.Protocols {
+ if strings.ToLower(p) == "https" {
+ schma = strings.ToLower(p)
+ break
+ }
+ }
+ }
+ endpoint = endpointItem.Endpoint
+ } else {
+ endpoint = fmt.Sprintf("oss-%s.aliyuncs.com", region)
+ }
+ }
+ if !strings.HasPrefix(endpoint, "http") {
+ endpoint = fmt.Sprintf("%s://%s", schma, endpoint)
+ }
+ log.Printf("[DEBUG] Instantiate OSS client using endpoint: %#v", endpoint)
+ var options []oss.ClientOption
+ if security_token != "" {
+ options = append(options, oss.SecurityToken(security_token))
+ }
+ options = append(options, oss.UserAgent(fmt.Sprintf("%s/%s", TerraformUA, TerraformVersion)))
+
+ client, err := oss.New(endpoint, access_key, secret_key, options...)
+ b.ossClient = client
+
+ return err
+}
+
+func (b *Backend) getOSSEndpointByRegion(access_key, secret_key, security_token, region string) (*location.DescribeEndpointResponse, error) {
+ args := location.CreateDescribeEndpointRequest()
+ args.ServiceCode = "oss"
+ args.Id = region
+ args.Domain = "location-readonly.aliyuncs.com"
+
+ locationClient, err := location.NewClientWithOptions(region, getSdkConfig(), credentials.NewStsTokenCredential(access_key, secret_key, security_token))
+ if err != nil {
+ return nil, fmt.Errorf("Unable to initialize the location client: %#v", err)
+
+ }
+ locationClient.AppendUserAgent(TerraformUA, TerraformVersion)
+ endpointsResponse, err := locationClient.DescribeEndpoint(args)
+ if err != nil {
+ return nil, fmt.Errorf("Describe oss endpoint using region: %#v got an error: %#v.", region, err)
+ }
+ return endpointsResponse, nil
+}
+
+func getSdkConfig() *sdk.Config {
+ // Fix bug "open /usr/local/go/lib/time/zoneinfo.zip: no such file or directory" which happened in windows.
+ if data, ok := resource.GetTZData("GMT"); ok {
+ utils.TZData = data
+ utils.LoadLocationFromTZData = time.LoadLocationFromTZData
+ }
+ return sdk.NewConfig().
+ WithMaxRetryTime(5).
+ WithTimeout(time.Duration(30) * time.Second).
+ WithGoRoutinePoolSize(10).
+ WithDebug(false).
+ WithHttpTransport(getTransport()).
+ WithScheme("HTTPS")
+}
+
+func getTransport() *http.Transport {
+ handshakeTimeout, err := strconv.Atoi(os.Getenv("TLSHandshakeTimeout"))
+ if err != nil {
+ handshakeTimeout = 120
+ }
+ transport := cleanhttp.DefaultTransport()
+ transport.TLSHandshakeTimeout = time.Duration(handshakeTimeout) * time.Second
+ transport.Proxy = http.ProxyFromEnvironment
+ return transport
+}
+
+type Invoker struct {
+ catchers []*Catcher
+}
+
+type Catcher struct {
+ Reason string
+ RetryCount int
+ RetryWaitSeconds int
+}
+
+const TerraformUA = "HashiCorp-Terraform"
+
+var TerraformVersion = strings.TrimSuffix(version.String(), "-dev")
+var ClientErrorCatcher = Catcher{"AliyunGoClientFailure", 10, 3}
+var ServiceBusyCatcher = Catcher{"ServiceUnavailable", 10, 3}
+
+func NewInvoker() Invoker {
+ i := Invoker{}
+ i.AddCatcher(ClientErrorCatcher)
+ i.AddCatcher(ServiceBusyCatcher)
+ return i
+}
+
+func (a *Invoker) AddCatcher(catcher Catcher) {
+ a.catchers = append(a.catchers, &catcher)
+}
+
+func (a *Invoker) Run(f func() error) error {
+ err := f()
+
+ if err == nil {
+ return nil
+ }
+
+ for _, catcher := range a.catchers {
+ if strings.Contains(err.Error(), catcher.Reason) {
+ catcher.RetryCount--
+
+ if catcher.RetryCount <= 0 {
+ return fmt.Errorf("Retry timeout and got an error: %#v.", err)
+ } else {
+ time.Sleep(time.Duration(catcher.RetryWaitSeconds) * time.Second)
+ return a.Run(f)
+ }
+ }
+ }
+ return err
+}
diff --git a/backend/remote-state/oss/backend_state.go b/backend/remote-state/oss/backend_state.go
new file mode 100644
index 000000000..f9bd65575
--- /dev/null
+++ b/backend/remote-state/oss/backend_state.go
@@ -0,0 +1,194 @@
+package oss
+
+import (
+ "errors"
+ "fmt"
+ "sort"
+ "strings"
+
+ "github.com/aliyun/aliyun-oss-go-sdk/oss"
+ "github.com/hashicorp/terraform/backend"
+ "github.com/hashicorp/terraform/state"
+ "github.com/hashicorp/terraform/state/remote"
+ "github.com/hashicorp/terraform/states"
+
+ "log"
+ "path"
+)
+
+const (
+ lockFileSuffix = ".tflock"
+)
+
+// get a remote client configured for this state
+func (b *Backend) remoteClient(name string) (*RemoteClient, error) {
+ if name == "" {
+ return nil, errors.New("missing state name")
+ }
+
+ client := &RemoteClient{
+ ossClient: b.ossClient,
+ bucketName: b.bucketName,
+ stateFile: b.stateFile(name),
+ lockFile: b.lockFile(name),
+ serverSideEncryption: b.serverSideEncryption,
+ acl: b.acl,
+ doLock: b.lock,
+ }
+
+ return client, nil
+}
+
+func (b *Backend) Workspaces() ([]string, error) {
+ bucket, err := b.ossClient.Bucket(b.bucketName)
+ if err != nil {
+ return []string{""}, fmt.Errorf("Error getting bucket: %#v", err)
+ }
+
+ var options []oss.Option
+ options = append(options, oss.Prefix(b.statePath))
+ resp, err := bucket.ListObjects(options...)
+
+ if err != nil {
+ return nil, err
+ }
+
+ result := []string{backend.DefaultStateName}
+ for _, obj := range resp.Objects {
+ if b.keyEnv(obj.Key) != "" {
+ result = append(result, b.keyEnv(obj.Key))
+ }
+ }
+
+ sort.Strings(result[1:])
+ return result, nil
+}
+
+func (b *Backend) DeleteWorkspace(name string) error {
+ if name == backend.DefaultStateName || name == "" {
+ return fmt.Errorf("can't delete default state")
+ }
+
+ client, err := b.remoteClient(name)
+ if err != nil {
+ return err
+ }
+ return client.Delete()
+}
+
+func (b *Backend) StateMgr(name string) (state.State, error) {
+ client, err := b.remoteClient(name)
+ if err != nil {
+ return nil, err
+ }
+ stateMgr := &remote.State{Client: client}
+
+ if !b.lock {
+ stateMgr.DisableLocks()
+ }
+ // Check to see if this state already exists.
+ existing, err := b.Workspaces()
+ if err != nil {
+ return nil, err
+ }
+
+ log.Printf("[DEBUG] Current state name: %s. All States:%#v", name, existing)
+
+ exists := false
+ for _, s := range existing {
+ if s == name {
+ exists = true
+ break
+ }
+ }
+ // We need to create the object so it's listed by States.
+ if !exists {
+ // take a lock on this state while we write it
+ lockInfo := state.NewLockInfo()
+ lockInfo.Operation = "init"
+ lockId, err := client.Lock(lockInfo)
+ if err != nil {
+ return nil, fmt.Errorf("Failed to lock OSS state: %s", err)
+ }
+
+ // Local helper function so we can call it multiple places
+ lockUnlock := func(e error) error {
+ if err := stateMgr.Unlock(lockId); err != nil {
+ return fmt.Errorf(strings.TrimSpace(stateUnlockError), lockId, err)
+ }
+ return e
+ }
+
+ // Grab the value
+ if err := stateMgr.RefreshState(); err != nil {
+ err = lockUnlock(err)
+ return nil, err
+ }
+
+ // If we have no state, we have to create an empty state
+ if v := stateMgr.State(); v == nil {
+ if err := stateMgr.WriteState(states.NewState()); err != nil {
+ err = lockUnlock(err)
+ return nil, err
+ }
+ if err := stateMgr.PersistState(); err != nil {
+ err = lockUnlock(err)
+ return nil, err
+ }
+ }
+
+ // Unlock, the state should now be initialized
+ if err := lockUnlock(nil); err != nil {
+ return nil, err
+ }
+
+ }
+ return stateMgr, nil
+}
+
+// extract the object name from the OSS key
+func (b *Backend) keyEnv(key string) string {
+ // we have 3 parts, the state path, the state name, and the state file
+ parts := strings.Split(key, "/")
+ length := len(parts)
+ if length < 3 {
+ // use default state
+ return ""
+ }
+
+ // shouldn't happen since we listed by prefix
+ if strings.Join(parts[0:length-2], "/") != b.statePath {
+ return ""
+ }
+
+ // not our key, so don't include it in our listing
+ if parts[length-1] != b.stateName {
+ return ""
+ }
+
+ return parts[length-2]
+}
+
+func (b *Backend) stateFile(name string) string {
+ if name == backend.DefaultStateName {
+ return path.Join(b.statePath, b.stateName)
+ }
+ return path.Join(b.statePath, name, b.stateName)
+}
+
+func (b *Backend) lockFile(name string) string {
+ if name == backend.DefaultStateName {
+ return path.Join(b.statePath, b.stateName+lockFileSuffix)
+ }
+ return path.Join(b.statePath, name, b.stateName+lockFileSuffix)
+}
+
+const stateUnlockError = `
+Error unlocking Alibaba Cloud OSS state file:
+
+Lock ID: %s
+Error message: %#v
+
+You may have to force-unlock this state in order to use it again.
+The Alibaba Cloud backend acquires a lock during initialization to ensure the initial state file is created.
+`
diff --git a/backend/remote-state/oss/backend_test.go b/backend/remote-state/oss/backend_test.go
new file mode 100644
index 000000000..430b6d773
--- /dev/null
+++ b/backend/remote-state/oss/backend_test.go
@@ -0,0 +1,134 @@
+package oss
+
+import (
+ "fmt"
+ "os"
+ "testing"
+ "time"
+
+ "github.com/aliyun/aliyun-oss-go-sdk/oss"
+ "github.com/hashicorp/terraform/backend"
+ "github.com/hashicorp/terraform/config/hcl2shim"
+ "strings"
+)
+
+// verify that we are doing ACC tests or the OSS tests specifically
+func testACC(t *testing.T) {
+ skip := os.Getenv("TF_ACC") == "" && os.Getenv("TF_OSS_TEST") == ""
+ if skip {
+ t.Log("oss backend tests require setting TF_ACC or TF_OSS_TEST")
+ t.Skip()
+ }
+ if os.Getenv("ALICLOUD_REGION") == "" {
+ os.Setenv("ALICLOUD_REGION", "cn-beijing")
+ }
+}
+
+func TestBackend_impl(t *testing.T) {
+ var _ backend.Backend = new(Backend)
+}
+
+func TestBackendConfig(t *testing.T) {
+ testACC(t)
+ config := map[string]interface{}{
+ "region": "cn-beijing",
+ "bucket": "terraform-backend-oss-test",
+ "path": "mystate",
+ "name": "first.tfstate",
+ }
+
+ b := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(config)).(*Backend)
+
+ if !strings.HasPrefix(b.ossClient.Config.Endpoint, "http://oss-cn-beijing") {
+ t.Fatalf("Incorrect region was provided")
+ }
+ if b.bucketName != "terraform-backend-oss-test" {
+ t.Fatalf("Incorrect bucketName was provided")
+ }
+ if b.statePath != "mystate" {
+ t.Fatalf("Incorrect state file path was provided")
+ }
+ if b.stateName != "first.tfstate" {
+ t.Fatalf("Incorrect keyName was provided")
+ }
+
+ if b.ossClient.Config.AccessKeyID == "" {
+ t.Fatalf("No Access Key Id was provided")
+ }
+ if b.ossClient.Config.AccessKeySecret == "" {
+ t.Fatalf("No Secret Access Key was provided")
+ }
+}
+
+func TestBackendConfig_invalidKey(t *testing.T) {
+ testACC(t)
+ cfg := hcl2shim.HCL2ValueFromConfigValue(map[string]interface{}{
+ "region": "cn-beijing",
+ "bucket": "terraform-backend-oss-test",
+ "path": "/leading-slash",
+ "name": "/test.tfstate",
+ })
+
+ _, results := New().PrepareConfig(cfg)
+ if !results.HasErrors() {
+ t.Fatal("expected config validation error")
+ }
+}
+
+func TestBackend(t *testing.T) {
+ testACC(t)
+
+ bucketName := fmt.Sprintf("terraform-remote-oss-test-%x", time.Now().Unix())
+ statePath := "multi/level/path/"
+
+ b1 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
+ "bucket": bucketName,
+ "path": statePath,
+ })).(*Backend)
+
+ b2 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
+ "bucket": bucketName,
+ "path": statePath,
+ })).(*Backend)
+
+ createOSSBucket(t, b1.ossClient, bucketName)
+ defer deleteOSSBucket(t, b1.ossClient, bucketName)
+
+ backend.TestBackendStates(t, b1)
+ backend.TestBackendStateLocks(t, b1, b2)
+ backend.TestBackendStateForceUnlock(t, b1, b2)
+}
+
+func createOSSBucket(t *testing.T, ossClient *oss.Client, bucketName string) {
+ // Be clear about what we're doing in case the user needs to clean this up later.
+ if err := ossClient.CreateBucket(bucketName); err != nil {
+ t.Fatal("failed to create test OSS bucket:", err)
+ }
+}
+
+func deleteOSSBucket(t *testing.T, ossClient *oss.Client, bucketName string) {
+ warning := "WARNING: Failed to delete the test OSS bucket. It may have been left in your Alicloud account and may incur storage charges. (error was %s)"
+
+ // first we have to get rid of the env objects, or we can't delete the bucket
+ bucket, err := ossClient.Bucket(bucketName)
+ if err != nil {
+ t.Fatal("Error getting bucket:", err)
+ return
+ }
+ objects, err := bucket.ListObjects()
+ if err != nil {
+ t.Logf(warning, err)
+ return
+ }
+ for _, obj := range objects.Objects {
+ if err := bucket.DeleteObject(obj.Key); err != nil {
+ // this will need cleanup no matter what, so just warn and exit
+ t.Logf(warning, err)
+ return
+ }
+ }
+
+ if err := ossClient.DeleteBucket(bucketName); err != nil {
+ t.Logf(warning, err)
+ }
+}
diff --git a/backend/remote-state/oss/client.go b/backend/remote-state/oss/client.go
new file mode 100644
index 000000000..4403e36c3
--- /dev/null
+++ b/backend/remote-state/oss/client.go
@@ -0,0 +1,226 @@
+package oss
+
+import (
+ "bytes"
+ "crypto/md5"
+ "encoding/json"
+ "fmt"
+ "io"
+
+ "github.com/aliyun/aliyun-oss-go-sdk/oss"
+ uuid "github.com/hashicorp/go-uuid"
+ "github.com/hashicorp/terraform/state"
+ "github.com/hashicorp/terraform/state/remote"
+ "log"
+ "sync"
+)
+
+type RemoteClient struct {
+ ossClient *oss.Client
+ bucketName string
+ stateFile string
+ lockFile string
+ serverSideEncryption bool
+ acl string
+ doLock bool
+ info *state.LockInfo
+ mu sync.Mutex
+}
+
+func (c *RemoteClient) Get() (payload *remote.Payload, err error) {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ buf, err := c.getObj(c.stateFile)
+ if err != nil {
+ return nil, err
+ }
+
+ // If there was no data, then return nil
+ if buf == nil || len(buf.Bytes()) == 0 {
+ log.Printf("[DEBUG] State %s has no data.", c.stateFile)
+ return nil, nil
+ }
+ md5 := md5.Sum(buf.Bytes())
+
+ payload = &remote.Payload{
+ Data: buf.Bytes(),
+ MD5: md5[:],
+ }
+ return payload, nil
+}
+
+func (c *RemoteClient) Put(data []byte) error {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ return c.putObj(c.stateFile, data)
+}
+
+func (c *RemoteClient) Delete() error {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ return c.deleteObj(c.stateFile)
+}
+
+func (c *RemoteClient) Lock(info *state.LockInfo) (string, error) {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ if !c.doLock {
+ return "", nil
+ }
+
+ bucket, err := c.ossClient.Bucket(c.bucketName)
+ if err != nil {
+ return "", fmt.Errorf("Error getting bucket: %#v", err)
+ }
+
+ infoJson, err := json.Marshal(info)
+ if err != nil {
+ return "", err
+ }
+
+ if info.ID == "" {
+ lockID, err := uuid.GenerateUUID()
+ if err != nil {
+ return "", err
+ }
+ info.ID = lockID
+ }
+
+ info.Path = c.lockFile
+ exist, err := bucket.IsObjectExist(info.Path)
+ if err != nil {
+ return "", fmt.Errorf("Error checking object %s: %#v", info.Path, err)
+ }
+ if !exist {
+ if err := c.putObj(info.Path, infoJson); err != nil {
+ return "", err
+ }
+ } else if _, err := c.validLock(info.ID); err != nil {
+ return "", err
+ }
+
+ return info.ID, nil
+}
+
+func (c *RemoteClient) Unlock(id string) error {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ if !c.doLock {
+ return nil
+ }
+
+ lockInfo, err := c.validLock(id)
+ if err != nil {
+ return err
+ }
+
+ if err := c.deleteObj(c.lockFile); err != nil {
+ return &state.LockError{
+ Info: lockInfo,
+ Err: err,
+ }
+ }
+ return nil
+}
+
+func (c *RemoteClient) putObj(key string, data []byte) error {
+ bucket, err := c.ossClient.Bucket(c.bucketName)
+ if err != nil {
+ return fmt.Errorf("Error getting bucket: %#v", err)
+ }
+ body := bytes.NewReader(data)
+
+ var options []oss.Option
+ if c.acl != "" {
+ options = append(options, oss.ACL(oss.ACLType(c.acl)))
+ }
+ options = append(options, oss.ContentType("application/json"))
+ if c.serverSideEncryption {
+ options = append(options, oss.ServerSideEncryption("AES256"))
+ }
+ options = append(options, oss.ContentLength(int64(len(data))))
+
+ if body != nil {
+ if err := bucket.PutObject(key, body, options...); err != nil {
+ return fmt.Errorf("failed to upload %s: %#v", key, err)
+ }
+ return nil
+ }
+ return nil
+}
+
+func (c *RemoteClient) getObj(key string) (*bytes.Buffer, error) {
+ bucket, err := c.ossClient.Bucket(c.bucketName)
+ if err != nil {
+ return nil, fmt.Errorf("Error getting bucket: %#v", err)
+ }
+
+ if exist, err := bucket.IsObjectExist(key); err != nil {
+ return nil, fmt.Errorf("Estimating object %s is exist got an error: %#v", key, err)
+ } else if !exist {
+ return nil, nil
+ }
+
+ var options []oss.Option
+ output, err := bucket.GetObject(key, options...)
+ if err != nil {
+ return nil, fmt.Errorf("Error getting object: %#v", err)
+ }
+
+ buf := bytes.NewBuffer(nil)
+ if _, err := io.Copy(buf, output); err != nil {
+ return nil, fmt.Errorf("Failed to read remote state: %s", err)
+ }
+ return buf, nil
+}
+
+func (c *RemoteClient) deleteObj(key string) error {
+ bucket, err := c.ossClient.Bucket(c.bucketName)
+ if err != nil {
+ return fmt.Errorf("Error getting bucket: %#v", err)
+ }
+
+ if err := bucket.DeleteObject(key); err != nil {
+ return fmt.Errorf("Error deleting object %s: %#v", key, err)
+ }
+ return nil
+}
+
+// lockInfo reads the lock file, parses its contents and returns the parsed
+// LockInfo struct.
+func (c *RemoteClient) lockInfo() (*state.LockInfo, error) {
+ buf, err := c.getObj(c.lockFile)
+ if err != nil {
+ return nil, err
+ }
+ if buf == nil || len(buf.Bytes()) == 0 {
+ return nil, nil
+ }
+ info := &state.LockInfo{}
+ if err := json.Unmarshal(buf.Bytes(), info); err != nil {
+ return nil, err
+ }
+
+ return info, nil
+}
+
+func (c *RemoteClient) validLock(id string) (*state.LockInfo, *state.LockError) {
+ lockErr := &state.LockError{}
+ lockInfo, err := c.lockInfo()
+ if err != nil {
+ lockErr.Err = fmt.Errorf("failed to retrieve lock info: %s", err)
+ return nil, lockErr
+ }
+ lockErr.Info = lockInfo
+
+ if lockInfo.ID != id {
+ lockErr.Err = fmt.Errorf("lock id %q does not match existing lock", id)
+ return nil, lockErr
+ }
+ return lockInfo, nil
+}
diff --git a/backend/remote-state/oss/client_test.go b/backend/remote-state/oss/client_test.go
new file mode 100644
index 000000000..a24dd0216
--- /dev/null
+++ b/backend/remote-state/oss/client_test.go
@@ -0,0 +1,112 @@
+package oss
+
+import (
+ "fmt"
+ "testing"
+ "time"
+
+ "github.com/hashicorp/terraform/backend"
+ "github.com/hashicorp/terraform/state"
+ "github.com/hashicorp/terraform/state/remote"
+)
+
+func TestRemoteClient_impl(t *testing.T) {
+ var _ remote.Client = new(RemoteClient)
+ var _ remote.ClientLocker = new(RemoteClient)
+}
+
+func TestRemoteClient(t *testing.T) {
+ testACC(t)
+ bucketName := fmt.Sprintf("terraform-remote-oss-test-%x", time.Now().Unix())
+ path := "testState"
+
+ b := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
+ "bucket": bucketName,
+ "path": path,
+ "encrypt": true,
+ })).(*Backend)
+
+ createOSSBucket(t, b.ossClient, bucketName)
+ defer deleteOSSBucket(t, b.ossClient, bucketName)
+
+ state, err := b.StateMgr(backend.DefaultStateName)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ remote.TestClient(t, state.(*remote.State).Client)
+}
+
+func TestOSS_stateLock(t *testing.T) {
+ testACC(t)
+ bucketName := fmt.Sprintf("terraform-remote-oss-test-%x", time.Now().Unix())
+ path := "testState"
+
+ b1 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
+ "bucket": bucketName,
+ "path": path,
+ "encrypt": true,
+ })).(*Backend)
+
+ b2 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
+ "bucket": bucketName,
+ "path": path,
+ "encrypt": true,
+ })).(*Backend)
+
+ createOSSBucket(t, b1.ossClient, bucketName)
+ defer deleteOSSBucket(t, b1.ossClient, bucketName)
+
+ s1, err := b1.StateMgr(backend.DefaultStateName)
+ if err != nil {
+ t.Fatalf("err: %s", err)
+ }
+
+ s2, err := b2.StateMgr(backend.DefaultStateName)
+ if err != nil {
+ t.Fatalf("err: %s", err)
+ }
+
+ remote.TestRemoteLocks(t, s1.(*remote.State).Client, s2.(*remote.State).Client)
+}
+
+// verify that we can unlock a state with an existing lock
+func TestOSS_destroyLock(t *testing.T) {
+ testACC(t)
+ bucketName := fmt.Sprintf("terraform-remote-oss-test-%x", time.Now().Unix())
+ path := "testState"
+
+ b := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
+ "bucket": bucketName,
+ "path": path,
+ "encrypt": true,
+ })).(*Backend)
+
+ createOSSBucket(t, b.ossClient, bucketName)
+ defer deleteOSSBucket(t, b.ossClient, bucketName)
+
+ s, err := b.StateMgr(backend.DefaultStateName)
+ if err != nil {
+ t.Fatalf("err: %s", err)
+ }
+
+ c := s.(*remote.State).Client.(*RemoteClient)
+
+ info := state.NewLockInfo()
+ id, err := c.Lock(info)
+ if err != nil {
+ t.Fatalf("err: %s", err)
+ }
+
+ if err := c.Unlock(id); err != nil {
+ t.Fatalf("err: %s", err)
+ }
+
+ res, err := c.getObj(c.lockFile)
+ if err != nil {
+ t.Fatalf("err: %s", err)
+ }
+ if res != nil && res.String() != "" {
+ t.Fatalf("lock key not cleaned up at: %s", string(c.stateFile))
+ }
+}
diff --git a/go.mod b/go.mod
index 4970ed1c4..8338c893e 100644
--- a/go.mod
+++ b/go.mod
@@ -8,6 +8,8 @@ require (
github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af // indirect
github.com/agext/levenshtein v1.2.2
github.com/agl/ed25519 v0.0.0-20150830182803-278e1ec8e8a6 // indirect
+ github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190104080739-ef2ef6084d8f
+ github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190103054945-8205d1f41e70
github.com/apparentlymart/go-cidr v1.0.0
github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0
github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2
@@ -69,6 +71,7 @@ require (
github.com/hashicorp/vault v0.10.4
github.com/jonboulle/clockwork v0.1.0 // indirect
github.com/joyent/triton-go v0.0.0-20180313100802-d8f9c0314926
+ github.com/json-iterator/go v1.1.5 // indirect
github.com/jtolds/gls v4.2.1+incompatible // indirect
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0
github.com/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba // indirect
@@ -90,6 +93,8 @@ require (
github.com/mitchellh/panicwrap v0.0.0-20190213213626-17011010aaa4
github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51
github.com/mitchellh/reflectwalk v1.0.0
+ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+ github.com/modern-go/reflect2 v1.0.1 // indirect
github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c // indirect
github.com/pkg/errors v0.0.0-20170505043639-c605e284fe17 // indirect
diff --git a/go.sum b/go.sum
index 1aa5c9667..b236f55e8 100644
--- a/go.sum
+++ b/go.sum
@@ -28,6 +28,10 @@ github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXva
github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
github.com/agl/ed25519 v0.0.0-20150830182803-278e1ec8e8a6 h1:LoeFxdq5zUCBQPhbQKE6zvoGwHMxCBlqwbH9+9kHoHA=
github.com/agl/ed25519 v0.0.0-20150830182803-278e1ec8e8a6/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0=
+github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190104080739-ef2ef6084d8f h1:pM8wn2zKfEVQkR9cj//GkywiJXMwtZ9feuNsEkHqBC8=
+github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190104080739-ef2ef6084d8f/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA=
+github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190103054945-8205d1f41e70 h1:FrF4uxA24DF3ARNXVbUin3wa5fDLaB1Cy8mKks/LRz4=
+github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190103054945-8205d1f41e70/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
github.com/antchfx/xpath v0.0.0-20190129040759-c8489ed3251e h1:ptBAamGVd6CfRsUtyHD+goy2JGhv1QC32v3gqM8mYAM=
github.com/antchfx/xpath v0.0.0-20190129040759-c8489ed3251e/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk=
@@ -228,6 +232,8 @@ github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/joyent/triton-go v0.0.0-20180313100802-d8f9c0314926 h1:kie3qOosvRKqwij2HGzXWffwpXvcqfPPXRUw8I4F/mg=
github.com/joyent/triton-go v0.0.0-20180313100802-d8f9c0314926/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA=
+github.com/json-iterator/go v1.1.5 h1:gL2yXlmiIo4+t+y32d4WGwOjKGYcGOuyrg46vadswDE=
+github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE=
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 h1:PJPDf8OUfOK1bb/NeTKd4f1QXZItOX389VN3B6qC8ro=
@@ -301,6 +307,10 @@ github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51 h1:eD92Am0Qf3
github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51/go.mod h1:kB1naBgV9ORnkiTVeyJOI1DavaJkG4oNIq0Af6ZVKUo=
github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY=
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
+github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=
github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ=
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/LICENSE b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credential.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credential.go
new file mode 100644
index 000000000..7f20b7a40
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credential.go
@@ -0,0 +1,18 @@
+/*
+ * 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.
+ */
+
+package auth
+
+type Credential interface {
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/access_key_credential.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/access_key_credential.go
new file mode 100644
index 000000000..68f822633
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/access_key_credential.go
@@ -0,0 +1,34 @@
+package credentials
+
+// Deprecated: Use AccessKeyCredential in this package instead.
+type BaseCredential struct {
+ AccessKeyId string
+ AccessKeySecret string
+}
+
+type AccessKeyCredential struct {
+ AccessKeyId string
+ AccessKeySecret string
+}
+
+// Deprecated: Use NewAccessKeyCredential in this package instead.
+func NewBaseCredential(accessKeyId, accessKeySecret string) *BaseCredential {
+ return &BaseCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ }
+}
+
+func (baseCred *BaseCredential) ToAccessKeyCredential() *AccessKeyCredential {
+ return &AccessKeyCredential{
+ AccessKeyId: baseCred.AccessKeyId,
+ AccessKeySecret: baseCred.AccessKeySecret,
+ }
+}
+
+func NewAccessKeyCredential(accessKeyId, accessKeySecret string) *AccessKeyCredential {
+ return &AccessKeyCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/ecs_ram_role.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/ecs_ram_role.go
new file mode 100644
index 000000000..1e1f73ae4
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/ecs_ram_role.go
@@ -0,0 +1,29 @@
+package credentials
+
+// Deprecated: Use EcsRamRoleCredential in this package instead.
+type StsRoleNameOnEcsCredential struct {
+ RoleName string
+}
+
+// Deprecated: Use NewEcsRamRoleCredential in this package instead.
+func NewStsRoleNameOnEcsCredential(roleName string) *StsRoleNameOnEcsCredential {
+ return &StsRoleNameOnEcsCredential{
+ RoleName: roleName,
+ }
+}
+
+func (oldCred *StsRoleNameOnEcsCredential) ToEcsRamRoleCredential() *EcsRamRoleCredential {
+ return &EcsRamRoleCredential{
+ RoleName: oldCred.RoleName,
+ }
+}
+
+type EcsRamRoleCredential struct {
+ RoleName string
+}
+
+func NewEcsRamRoleCredential(roleName string) *EcsRamRoleCredential {
+ return &EcsRamRoleCredential{
+ RoleName: roleName,
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/rsa_key_pair_credential.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/rsa_key_pair_credential.go
new file mode 100644
index 000000000..00d688eb8
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/rsa_key_pair_credential.go
@@ -0,0 +1,15 @@
+package credentials
+
+type RsaKeyPairCredential struct {
+ PrivateKey string
+ PublicKeyId string
+ SessionExpiration int
+}
+
+func NewRsaKeyPairCredential(privateKey, publicKeyId string, sessionExpiration int) *RsaKeyPairCredential {
+ return &RsaKeyPairCredential{
+ PrivateKey: privateKey,
+ PublicKeyId: publicKeyId,
+ SessionExpiration: sessionExpiration,
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/sts_credential.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/sts_credential.go
new file mode 100644
index 000000000..554431ff0
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/sts_credential.go
@@ -0,0 +1,15 @@
+package credentials
+
+type StsTokenCredential struct {
+ AccessKeyId string
+ AccessKeySecret string
+ AccessKeyStsToken string
+}
+
+func NewStsTokenCredential(accessKeyId, accessKeySecret, accessKeyStsToken string) *StsTokenCredential {
+ return &StsTokenCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ AccessKeyStsToken: accessKeyStsToken,
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/sts_role_arn_credential.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/sts_role_arn_credential.go
new file mode 100644
index 000000000..7a9db75d2
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/sts_role_arn_credential.go
@@ -0,0 +1,49 @@
+package credentials
+
+// Deprecated: Use RamRoleArnCredential in this package instead.
+type StsRoleArnCredential struct {
+ AccessKeyId string
+ AccessKeySecret string
+ RoleArn string
+ RoleSessionName string
+ RoleSessionExpiration int
+}
+
+type RamRoleArnCredential struct {
+ AccessKeyId string
+ AccessKeySecret string
+ RoleArn string
+ RoleSessionName string
+ RoleSessionExpiration int
+}
+
+// Deprecated: Use RamRoleArnCredential in this package instead.
+func NewStsRoleArnCredential(accessKeyId, accessKeySecret, roleArn, roleSessionName string, roleSessionExpiration int) *StsRoleArnCredential {
+ return &StsRoleArnCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ RoleArn: roleArn,
+ RoleSessionName: roleSessionName,
+ RoleSessionExpiration: roleSessionExpiration,
+ }
+}
+
+func (oldCred *StsRoleArnCredential) ToRamRoleArnCredential() *RamRoleArnCredential {
+ return &RamRoleArnCredential{
+ AccessKeyId: oldCred.AccessKeyId,
+ AccessKeySecret: oldCred.AccessKeySecret,
+ RoleArn: oldCred.RoleArn,
+ RoleSessionName: oldCred.RoleSessionName,
+ RoleSessionExpiration: oldCred.RoleSessionExpiration,
+ }
+}
+
+func NewRamRoleArnCredential(accessKeyId, accessKeySecret, roleArn, roleSessionName string, roleSessionExpiration int) *RamRoleArnCredential {
+ return &RamRoleArnCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ RoleArn: roleArn,
+ RoleSessionName: roleSessionName,
+ RoleSessionExpiration: roleSessionExpiration,
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/roa_signature_composer.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/roa_signature_composer.go
new file mode 100644
index 000000000..19498b13f
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/roa_signature_composer.go
@@ -0,0 +1,133 @@
+/*
+ * 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.
+ */
+
+package auth
+
+import (
+ "bytes"
+ "sort"
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+var debug utils.Debug
+
+var hookGetDate = func(fn func() string) string {
+ return fn()
+}
+
+func init() {
+ debug = utils.Init("sdk")
+}
+
+func signRoaRequest(request requests.AcsRequest, signer Signer, regionId string) (err error) {
+ completeROASignParams(request, signer, regionId)
+ stringToSign := buildRoaStringToSign(request)
+ request.SetStringToSign(stringToSign)
+ signature := signer.Sign(stringToSign, "")
+ accessKeyId, err := signer.GetAccessKeyId()
+ if err != nil {
+ return nil
+ }
+
+ request.GetHeaders()["Authorization"] = "acs " + accessKeyId + ":" + signature
+
+ return
+}
+
+func completeROASignParams(request requests.AcsRequest, signer Signer, regionId string) {
+ headerParams := request.GetHeaders()
+
+ // complete query params
+ queryParams := request.GetQueryParams()
+ //if _, ok := queryParams["RegionId"]; !ok {
+ // queryParams["RegionId"] = regionId
+ //}
+ if extraParam := signer.GetExtraParam(); extraParam != nil {
+ for key, value := range extraParam {
+ if key == "SecurityToken" {
+ headerParams["x-acs-security-token"] = value
+ continue
+ }
+
+ queryParams[key] = value
+ }
+ }
+
+ // complete header params
+ headerParams["Date"] = hookGetDate(utils.GetTimeInFormatRFC2616)
+ headerParams["x-acs-signature-method"] = signer.GetName()
+ headerParams["x-acs-signature-version"] = signer.GetVersion()
+ if request.GetFormParams() != nil && len(request.GetFormParams()) > 0 {
+ formString := utils.GetUrlFormedMap(request.GetFormParams())
+ request.SetContent([]byte(formString))
+ headerParams["Content-Type"] = requests.Form
+ }
+ contentMD5 := utils.GetMD5Base64(request.GetContent())
+ headerParams["Content-MD5"] = contentMD5
+ if _, contains := headerParams["Content-Type"]; !contains {
+ headerParams["Content-Type"] = requests.Raw
+ }
+ switch format := request.GetAcceptFormat(); format {
+ case "JSON":
+ headerParams["Accept"] = requests.Json
+ case "XML":
+ headerParams["Accept"] = requests.Xml
+ default:
+ headerParams["Accept"] = requests.Raw
+ }
+}
+
+func buildRoaStringToSign(request requests.AcsRequest) (stringToSign string) {
+
+ headers := request.GetHeaders()
+
+ stringToSignBuilder := bytes.Buffer{}
+ stringToSignBuilder.WriteString(request.GetMethod())
+ stringToSignBuilder.WriteString(requests.HeaderSeparator)
+
+ // append header keys for sign
+ appendIfContain(headers, &stringToSignBuilder, "Accept", requests.HeaderSeparator)
+ appendIfContain(headers, &stringToSignBuilder, "Content-MD5", requests.HeaderSeparator)
+ appendIfContain(headers, &stringToSignBuilder, "Content-Type", requests.HeaderSeparator)
+ appendIfContain(headers, &stringToSignBuilder, "Date", requests.HeaderSeparator)
+
+ // sort and append headers witch starts with 'x-acs-'
+ var acsHeaders []string
+ for key := range headers {
+ if strings.HasPrefix(key, "x-acs-") {
+ acsHeaders = append(acsHeaders, key)
+ }
+ }
+ sort.Strings(acsHeaders)
+ for _, key := range acsHeaders {
+ stringToSignBuilder.WriteString(key + ":" + headers[key])
+ stringToSignBuilder.WriteString(requests.HeaderSeparator)
+ }
+
+ // append query params
+ stringToSignBuilder.WriteString(request.BuildQueries())
+ stringToSign = stringToSignBuilder.String()
+ debug("stringToSign: %s", stringToSign)
+ return
+}
+
+func appendIfContain(sourceMap map[string]string, target *bytes.Buffer, key, separator string) {
+ if value, contain := sourceMap[key]; contain && len(value) > 0 {
+ target.WriteString(sourceMap[key])
+ target.WriteString(separator)
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/rpc_signature_composer.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/rpc_signature_composer.go
new file mode 100644
index 000000000..14ea15ca4
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/rpc_signature_composer.go
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+
+package auth
+
+import (
+ "net/url"
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+var hookGetUUIDV4 = func(fn func() string) string {
+ return fn()
+}
+
+func signRpcRequest(request requests.AcsRequest, signer Signer, regionId string) (err error) {
+ err = completeRpcSignParams(request, signer, regionId)
+ if err != nil {
+ return
+ }
+ // remove while retry
+ if _, containsSign := request.GetQueryParams()["Signature"]; containsSign {
+ delete(request.GetQueryParams(), "Signature")
+ }
+ stringToSign := buildRpcStringToSign(request)
+ request.SetStringToSign(stringToSign)
+ signature := signer.Sign(stringToSign, "&")
+ request.GetQueryParams()["Signature"] = signature
+
+ return
+}
+
+func completeRpcSignParams(request requests.AcsRequest, signer Signer, regionId string) (err error) {
+ queryParams := request.GetQueryParams()
+ queryParams["Version"] = request.GetVersion()
+ queryParams["Action"] = request.GetActionName()
+ queryParams["Format"] = request.GetAcceptFormat()
+ queryParams["Timestamp"] = hookGetDate(utils.GetTimeInFormatISO8601)
+ queryParams["SignatureMethod"] = signer.GetName()
+ queryParams["SignatureType"] = signer.GetType()
+ queryParams["SignatureVersion"] = signer.GetVersion()
+ queryParams["SignatureNonce"] = hookGetUUIDV4(utils.GetUUIDV4)
+ queryParams["AccessKeyId"], err = signer.GetAccessKeyId()
+
+ if err != nil {
+ return
+ }
+
+ if _, contains := queryParams["RegionId"]; !contains {
+ queryParams["RegionId"] = regionId
+ }
+ if extraParam := signer.GetExtraParam(); extraParam != nil {
+ for key, value := range extraParam {
+ queryParams[key] = value
+ }
+ }
+
+ request.GetHeaders()["Content-Type"] = requests.Form
+ formString := utils.GetUrlFormedMap(request.GetFormParams())
+ request.SetContent([]byte(formString))
+
+ return
+}
+
+func buildRpcStringToSign(request requests.AcsRequest) (stringToSign string) {
+ signParams := make(map[string]string)
+ for key, value := range request.GetQueryParams() {
+ signParams[key] = value
+ }
+ for key, value := range request.GetFormParams() {
+ signParams[key] = value
+ }
+
+ stringToSign = utils.GetUrlFormedMap(signParams)
+ stringToSign = strings.Replace(stringToSign, "+", "%20", -1)
+ stringToSign = strings.Replace(stringToSign, "*", "%2A", -1)
+ stringToSign = strings.Replace(stringToSign, "%7E", "~", -1)
+ stringToSign = url.QueryEscape(stringToSign)
+ stringToSign = request.GetMethod() + "&%2F&" + stringToSign
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signer.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signer.go
new file mode 100644
index 000000000..cbc5f5659
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signer.go
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+
+package auth
+
+import (
+ "fmt"
+ "reflect"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+type Signer interface {
+ GetName() string
+ GetType() string
+ GetVersion() string
+ GetAccessKeyId() (string, error)
+ GetExtraParam() map[string]string
+ Sign(stringToSign, secretSuffix string) string
+}
+
+func NewSignerWithCredential(credential Credential, commonApi func(request *requests.CommonRequest, signer interface{}) (response *responses.CommonResponse, err error)) (signer Signer, err error) {
+ switch instance := credential.(type) {
+ case *credentials.AccessKeyCredential:
+ {
+ signer = signers.NewAccessKeySigner(instance)
+ }
+ case *credentials.StsTokenCredential:
+ {
+ signer = signers.NewStsTokenSigner(instance)
+ }
+ case *credentials.RamRoleArnCredential:
+ {
+ signer, err = signers.NewRamRoleArnSigner(instance, commonApi)
+ }
+ case *credentials.RsaKeyPairCredential:
+ {
+ signer, err = signers.NewSignerKeyPair(instance, commonApi)
+ }
+ case *credentials.EcsRamRoleCredential:
+ {
+ signer = signers.NewEcsRamRoleSigner(instance, commonApi)
+ }
+ case *credentials.BaseCredential: // deprecated user interface
+ {
+ signer = signers.NewAccessKeySigner(instance.ToAccessKeyCredential())
+ }
+ case *credentials.StsRoleArnCredential: // deprecated user interface
+ {
+ signer, err = signers.NewRamRoleArnSigner(instance.ToRamRoleArnCredential(), commonApi)
+ }
+ case *credentials.StsRoleNameOnEcsCredential: // deprecated user interface
+ {
+ signer = signers.NewEcsRamRoleSigner(instance.ToEcsRamRoleCredential(), commonApi)
+ }
+ default:
+ message := fmt.Sprintf(errors.UnsupportedCredentialErrorMessage, reflect.TypeOf(credential))
+ err = errors.NewClientError(errors.UnsupportedCredentialErrorCode, message, nil)
+ }
+ return
+}
+
+func Sign(request requests.AcsRequest, signer Signer, regionId string) (err error) {
+ switch request.GetStyle() {
+ case requests.ROA:
+ {
+ err = signRoaRequest(request, signer, regionId)
+ }
+ case requests.RPC:
+ {
+ err = signRpcRequest(request, signer, regionId)
+ }
+ default:
+ message := fmt.Sprintf(errors.UnknownRequestTypeErrorMessage, reflect.TypeOf(request))
+ err = errors.NewClientError(errors.UnknownRequestTypeErrorCode, message, nil)
+ }
+
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/algorithms.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/algorithms.go
new file mode 100644
index 000000000..404006c56
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/algorithms.go
@@ -0,0 +1,56 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "crypto"
+ "crypto/hmac"
+ "crypto/rand"
+ "crypto/rsa"
+ "crypto/sha1"
+ "crypto/x509"
+ "encoding/base64"
+)
+
+func ShaHmac1(source, secret string) string {
+ key := []byte(secret)
+ hmac := hmac.New(sha1.New, key)
+ hmac.Write([]byte(source))
+ signedBytes := hmac.Sum(nil)
+ signedString := base64.StdEncoding.EncodeToString(signedBytes)
+ return signedString
+}
+
+func Sha256WithRsa(source, secret string) string {
+ decodeString, err := base64.StdEncoding.DecodeString(secret)
+ if err != nil {
+ panic(err)
+ }
+ private, err := x509.ParsePKCS8PrivateKey(decodeString)
+ if err != nil {
+ panic(err)
+ }
+
+ h := crypto.Hash.New(crypto.SHA256)
+ h.Write([]byte(source))
+ hashed := h.Sum(nil)
+ signature, err := rsa.SignPKCS1v15(rand.Reader, private.(*rsa.PrivateKey),
+ crypto.SHA256, hashed)
+ if err != nil {
+ panic(err)
+ }
+
+ return base64.StdEncoding.EncodeToString(signature)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/credential_updater.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/credential_updater.go
new file mode 100644
index 000000000..e6da3b18a
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/credential_updater.go
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "time"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+const defaultInAdvanceScale = 0.8
+
+type credentialUpdater struct {
+ credentialExpiration int
+ lastUpdateTimestamp int64
+ inAdvanceScale float64
+ buildRequestMethod func() (*requests.CommonRequest, error)
+ responseCallBack func(response *responses.CommonResponse) error
+ refreshApi func(request *requests.CommonRequest) (response *responses.CommonResponse, err error)
+}
+
+func (updater *credentialUpdater) needUpdateCredential() (result bool) {
+ if updater.inAdvanceScale == 0 {
+ updater.inAdvanceScale = defaultInAdvanceScale
+ }
+ return time.Now().Unix()-updater.lastUpdateTimestamp >= int64(float64(updater.credentialExpiration)*updater.inAdvanceScale)
+}
+
+func (updater *credentialUpdater) updateCredential() (err error) {
+ request, err := updater.buildRequestMethod()
+ if err != nil {
+ return
+ }
+ response, err := updater.refreshApi(request)
+ if err != nil {
+ return
+ }
+ updater.lastUpdateTimestamp = time.Now().Unix()
+ err = updater.responseCallBack(response)
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/session_credential.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/session_credential.go
new file mode 100644
index 000000000..99c624c88
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/session_credential.go
@@ -0,0 +1,7 @@
+package signers
+
+type SessionCredential struct {
+ AccessKeyId string
+ AccessKeySecret string
+ StsToken string
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_access_key.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_access_key.go
new file mode 100644
index 000000000..bc4f35b85
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_access_key.go
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+)
+
+type AccessKeySigner struct {
+ credential *credentials.AccessKeyCredential
+}
+
+func (signer *AccessKeySigner) GetExtraParam() map[string]string {
+ return nil
+}
+
+func NewAccessKeySigner(credential *credentials.AccessKeyCredential) *AccessKeySigner {
+ return &AccessKeySigner{
+ credential: credential,
+ }
+}
+
+func (*AccessKeySigner) GetName() string {
+ return "HMAC-SHA1"
+}
+
+func (*AccessKeySigner) GetType() string {
+ return ""
+}
+
+func (*AccessKeySigner) GetVersion() string {
+ return "1.0"
+}
+
+func (signer *AccessKeySigner) GetAccessKeyId() (accessKeyId string, err error) {
+ return signer.credential.AccessKeyId, nil
+}
+
+func (signer *AccessKeySigner) Sign(stringToSign, secretSuffix string) string {
+ secret := signer.credential.AccessKeySecret + secretSuffix
+ return ShaHmac1(stringToSign, secret)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_ecs_ram_role.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_ecs_ram_role.go
new file mode 100644
index 000000000..e37c65745
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_ecs_ram_role.go
@@ -0,0 +1,167 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "strings"
+ "time"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+ "github.com/jmespath/go-jmespath"
+)
+
+var securityCredURL = "http://100.100.100.200/latest/meta-data/ram/security-credentials/"
+
+type EcsRamRoleSigner struct {
+ *credentialUpdater
+ sessionCredential *SessionCredential
+ credential *credentials.EcsRamRoleCredential
+ commonApi func(request *requests.CommonRequest, signer interface{}) (response *responses.CommonResponse, err error)
+}
+
+func NewEcsRamRoleSigner(credential *credentials.EcsRamRoleCredential, commonApi func(*requests.CommonRequest, interface{}) (response *responses.CommonResponse, err error)) (signer *EcsRamRoleSigner) {
+ signer = &EcsRamRoleSigner{
+ credential: credential,
+ commonApi: commonApi,
+ }
+
+ signer.credentialUpdater = &credentialUpdater{
+ credentialExpiration: defaultDurationSeconds / 60,
+ buildRequestMethod: signer.buildCommonRequest,
+ responseCallBack: signer.refreshCredential,
+ refreshApi: signer.refreshApi,
+ }
+
+ return signer
+}
+
+func (*EcsRamRoleSigner) GetName() string {
+ return "HMAC-SHA1"
+}
+
+func (*EcsRamRoleSigner) GetType() string {
+ return ""
+}
+
+func (*EcsRamRoleSigner) GetVersion() string {
+ return "1.0"
+}
+
+func (signer *EcsRamRoleSigner) GetAccessKeyId() (accessKeyId string, err error) {
+ if signer.sessionCredential == nil || signer.needUpdateCredential() {
+ err = signer.updateCredential()
+ if err != nil {
+ return
+ }
+ }
+ if signer.sessionCredential == nil || len(signer.sessionCredential.AccessKeyId) <= 0 {
+ return "", nil
+ }
+ return signer.sessionCredential.AccessKeyId, nil
+}
+
+func (signer *EcsRamRoleSigner) GetExtraParam() map[string]string {
+ if signer.sessionCredential == nil {
+ return make(map[string]string)
+ }
+ if len(signer.sessionCredential.StsToken) <= 0 {
+ return make(map[string]string)
+ }
+ return map[string]string{"SecurityToken": signer.sessionCredential.StsToken}
+}
+
+func (signer *EcsRamRoleSigner) Sign(stringToSign, secretSuffix string) string {
+ secret := signer.sessionCredential.AccessKeyId + secretSuffix
+ return ShaHmac1(stringToSign, secret)
+}
+
+func (signer *EcsRamRoleSigner) buildCommonRequest() (request *requests.CommonRequest, err error) {
+ return
+}
+
+func (signer *EcsRamRoleSigner) refreshApi(request *requests.CommonRequest) (response *responses.CommonResponse, err error) {
+ requestUrl := securityCredURL + signer.credential.RoleName
+ httpRequest, err := http.NewRequest(requests.GET, requestUrl, strings.NewReader(""))
+ if err != nil {
+ err = fmt.Errorf("refresh Ecs sts token err: %s", err.Error())
+ return
+ }
+ httpClient := &http.Client{}
+ httpResponse, err := httpClient.Do(httpRequest)
+ if err != nil {
+ err = fmt.Errorf("refresh Ecs sts token err: %s", err.Error())
+ return
+ }
+
+ response = responses.NewCommonResponse()
+ err = responses.Unmarshal(response, httpResponse, "")
+ return
+}
+
+func (signer *EcsRamRoleSigner) refreshCredential(response *responses.CommonResponse) (err error) {
+ if response.GetHttpStatus() != http.StatusOK {
+ return fmt.Errorf("refresh Ecs sts token err, httpStatus: %d, message = %s", response.GetHttpStatus(), response.GetHttpContentString())
+ }
+ var data interface{}
+ err = json.Unmarshal(response.GetHttpContentBytes(), &data)
+ if err != nil {
+ return fmt.Errorf("refresh Ecs sts token err, json.Unmarshal fail: %s", err.Error())
+ }
+ code, err := jmespath.Search("Code", data)
+ if err != nil {
+ return fmt.Errorf("refresh Ecs sts token err, fail to get Code: %s", err.Error())
+ }
+ if code.(string) != "Success" {
+ return fmt.Errorf("refresh Ecs sts token err, Code is not Success")
+ }
+ accessKeyId, err := jmespath.Search("AccessKeyId", data)
+ if err != nil {
+ return fmt.Errorf("refresh Ecs sts token err, fail to get AccessKeyId: %s", err.Error())
+ }
+ accessKeySecret, err := jmespath.Search("AccessKeySecret", data)
+ if err != nil {
+ return fmt.Errorf("refresh Ecs sts token err, fail to get AccessKeySecret: %s", err.Error())
+ }
+ securityToken, err := jmespath.Search("SecurityToken", data)
+ if err != nil {
+ return fmt.Errorf("refresh Ecs sts token err, fail to get SecurityToken: %s", err.Error())
+ }
+ expiration, err := jmespath.Search("Expiration", data)
+ if err != nil {
+ return fmt.Errorf("refresh Ecs sts token err, fail to get Expiration: %s", err.Error())
+ }
+ if accessKeyId == nil || accessKeySecret == nil || securityToken == nil || expiration == nil {
+ return
+ }
+
+ expirationTime, err := time.Parse("2006-01-02T15:04:05Z", expiration.(string))
+ signer.credentialExpiration = int(expirationTime.Unix() - time.Now().Unix())
+ signer.sessionCredential = &SessionCredential{
+ AccessKeyId: accessKeyId.(string),
+ AccessKeySecret: accessKeySecret.(string),
+ StsToken: securityToken.(string),
+ }
+
+ return
+}
+
+func (signer *EcsRamRoleSigner) GetSessionCredential() *SessionCredential {
+ return signer.sessionCredential
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_key_pair.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_key_pair.go
new file mode 100644
index 000000000..8ed184fc0
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_key_pair.go
@@ -0,0 +1,147 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "strconv"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+ "github.com/jmespath/go-jmespath"
+)
+
+type SignerKeyPair struct {
+ *credentialUpdater
+ sessionCredential *SessionCredential
+ credential *credentials.RsaKeyPairCredential
+ commonApi func(request *requests.CommonRequest, signer interface{}) (response *responses.CommonResponse, err error)
+}
+
+func NewSignerKeyPair(credential *credentials.RsaKeyPairCredential, commonApi func(*requests.CommonRequest, interface{}) (response *responses.CommonResponse, err error)) (signer *SignerKeyPair, err error) {
+ signer = &SignerKeyPair{
+ credential: credential,
+ commonApi: commonApi,
+ }
+
+ signer.credentialUpdater = &credentialUpdater{
+ credentialExpiration: credential.SessionExpiration,
+ buildRequestMethod: signer.buildCommonRequest,
+ responseCallBack: signer.refreshCredential,
+ refreshApi: signer.refreshApi,
+ }
+
+ if credential.SessionExpiration > 0 {
+ if credential.SessionExpiration >= 900 && credential.SessionExpiration <= 3600 {
+ signer.credentialExpiration = credential.SessionExpiration
+ } else {
+ err = errors.NewClientError(errors.InvalidParamErrorCode, "Key Pair session duration should be in the range of 15min - 1Hr", nil)
+ }
+ } else {
+ signer.credentialExpiration = defaultDurationSeconds
+ }
+ return
+}
+
+func (*SignerKeyPair) GetName() string {
+ return "HMAC-SHA1"
+}
+
+func (*SignerKeyPair) GetType() string {
+ return ""
+}
+
+func (*SignerKeyPair) GetVersion() string {
+ return "1.0"
+}
+
+func (signer *SignerKeyPair) ensureCredential() error {
+ if signer.sessionCredential == nil || signer.needUpdateCredential() {
+ return signer.updateCredential()
+ }
+ return nil
+}
+
+func (signer *SignerKeyPair) GetAccessKeyId() (accessKeyId string, err error) {
+ err = signer.ensureCredential()
+ if err != nil {
+ return
+ }
+ if signer.sessionCredential == nil || len(signer.sessionCredential.AccessKeyId) <= 0 {
+ accessKeyId = ""
+ return
+ }
+
+ accessKeyId = signer.sessionCredential.AccessKeyId
+ return
+}
+
+func (signer *SignerKeyPair) GetExtraParam() map[string]string {
+ return make(map[string]string)
+}
+
+func (signer *SignerKeyPair) Sign(stringToSign, secretSuffix string) string {
+ secret := signer.sessionCredential.AccessKeyId + secretSuffix
+ return ShaHmac1(stringToSign, secret)
+}
+
+func (signer *SignerKeyPair) buildCommonRequest() (request *requests.CommonRequest, err error) {
+ request = requests.NewCommonRequest()
+ request.Product = "Sts"
+ request.Version = "2015-04-01"
+ request.ApiName = "GenerateSessionAccessKey"
+ request.Scheme = requests.HTTPS
+ request.QueryParams["PublicKeyId"] = signer.credential.PublicKeyId
+ request.QueryParams["DurationSeconds"] = strconv.Itoa(signer.credentialExpiration)
+ return
+}
+
+func (signer *SignerKeyPair) refreshApi(request *requests.CommonRequest) (response *responses.CommonResponse, err error) {
+ signerV2 := NewSignerV2(signer.credential)
+ return signer.commonApi(request, signerV2)
+}
+
+func (signer *SignerKeyPair) refreshCredential(response *responses.CommonResponse) (err error) {
+ if response.GetHttpStatus() != http.StatusOK {
+ message := "refresh session AccessKey failed"
+ err = errors.NewServerError(response.GetHttpStatus(), response.GetHttpContentString(), message)
+ return
+ }
+ var data interface{}
+ err = json.Unmarshal(response.GetHttpContentBytes(), &data)
+ if err != nil {
+ return fmt.Errorf("refresh KeyPair err, json.Unmarshal fail: %s", err.Error())
+ }
+ accessKeyId, err := jmespath.Search("SessionAccessKey.SessionAccessKeyId", data)
+ if err != nil {
+ return fmt.Errorf("refresh KeyPair err, fail to get SessionAccessKeyId: %s", err.Error())
+ }
+ accessKeySecret, err := jmespath.Search("SessionAccessKey.SessionAccessKeySecret", data)
+ if err != nil {
+ return fmt.Errorf("refresh KeyPair err, fail to get SessionAccessKeySecret: %s", err.Error())
+ }
+ if accessKeyId == nil || accessKeySecret == nil {
+ return
+ }
+ signer.sessionCredential = &SessionCredential{
+ AccessKeyId: accessKeyId.(string),
+ AccessKeySecret: accessKeySecret.(string),
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_ram_role_arn.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_ram_role_arn.go
new file mode 100644
index 000000000..8fd859a98
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_ram_role_arn.go
@@ -0,0 +1,172 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "strconv"
+ "time"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+ "github.com/jmespath/go-jmespath"
+)
+
+const (
+ defaultDurationSeconds = 3600
+)
+
+type RamRoleArnSigner struct {
+ *credentialUpdater
+ roleSessionName string
+ sessionCredential *SessionCredential
+ credential *credentials.RamRoleArnCredential
+ commonApi func(request *requests.CommonRequest, signer interface{}) (response *responses.CommonResponse, err error)
+}
+
+func NewRamRoleArnSigner(credential *credentials.RamRoleArnCredential, commonApi func(request *requests.CommonRequest, signer interface{}) (response *responses.CommonResponse, err error)) (signer *RamRoleArnSigner, err error) {
+ signer = &RamRoleArnSigner{
+ credential: credential,
+ commonApi: commonApi,
+ }
+
+ signer.credentialUpdater = &credentialUpdater{
+ credentialExpiration: credential.RoleSessionExpiration,
+ buildRequestMethod: signer.buildCommonRequest,
+ responseCallBack: signer.refreshCredential,
+ refreshApi: signer.refreshApi,
+ }
+
+ if len(credential.RoleSessionName) > 0 {
+ signer.roleSessionName = credential.RoleSessionName
+ } else {
+ signer.roleSessionName = "aliyun-go-sdk-" + strconv.FormatInt(time.Now().UnixNano()/1000, 10)
+ }
+ if credential.RoleSessionExpiration > 0 {
+ if credential.RoleSessionExpiration >= 900 && credential.RoleSessionExpiration <= 3600 {
+ signer.credentialExpiration = credential.RoleSessionExpiration
+ } else {
+ err = errors.NewClientError(errors.InvalidParamErrorCode, "Assume Role session duration should be in the range of 15min - 1Hr", nil)
+ }
+ } else {
+ signer.credentialExpiration = defaultDurationSeconds
+ }
+ return
+}
+
+func (*RamRoleArnSigner) GetName() string {
+ return "HMAC-SHA1"
+}
+
+func (*RamRoleArnSigner) GetType() string {
+ return ""
+}
+
+func (*RamRoleArnSigner) GetVersion() string {
+ return "1.0"
+}
+
+func (signer *RamRoleArnSigner) GetAccessKeyId() (accessKeyId string, err error) {
+ if signer.sessionCredential == nil || signer.needUpdateCredential() {
+ err = signer.updateCredential()
+ if err != nil {
+ return
+ }
+ }
+
+ if signer.sessionCredential == nil || len(signer.sessionCredential.AccessKeyId) <= 0 {
+ return "", err
+ }
+
+ return signer.sessionCredential.AccessKeyId, nil
+}
+
+func (signer *RamRoleArnSigner) GetExtraParam() map[string]string {
+ if signer.sessionCredential == nil || signer.needUpdateCredential() {
+ signer.updateCredential()
+ }
+ if signer.sessionCredential == nil || len(signer.sessionCredential.StsToken) <= 0 {
+ return make(map[string]string)
+ }
+ return map[string]string{"SecurityToken": signer.sessionCredential.StsToken}
+}
+
+func (signer *RamRoleArnSigner) Sign(stringToSign, secretSuffix string) string {
+ secret := signer.sessionCredential.AccessKeySecret + secretSuffix
+ return ShaHmac1(stringToSign, secret)
+}
+
+func (signer *RamRoleArnSigner) buildCommonRequest() (request *requests.CommonRequest, err error) {
+ request = requests.NewCommonRequest()
+ request.Product = "Sts"
+ request.Version = "2015-04-01"
+ request.ApiName = "AssumeRole"
+ request.Scheme = requests.HTTPS
+ request.QueryParams["RoleArn"] = signer.credential.RoleArn
+ request.QueryParams["RoleSessionName"] = signer.credential.RoleSessionName
+ request.QueryParams["DurationSeconds"] = strconv.Itoa(signer.credentialExpiration)
+ return
+}
+
+func (signer *RamRoleArnSigner) refreshApi(request *requests.CommonRequest) (response *responses.CommonResponse, err error) {
+ credential := &credentials.AccessKeyCredential{
+ AccessKeyId: signer.credential.AccessKeyId,
+ AccessKeySecret: signer.credential.AccessKeySecret,
+ }
+ signerV1 := NewAccessKeySigner(credential)
+ return signer.commonApi(request, signerV1)
+}
+
+func (signer *RamRoleArnSigner) refreshCredential(response *responses.CommonResponse) (err error) {
+ if response.GetHttpStatus() != http.StatusOK {
+ message := "refresh session token failed"
+ err = errors.NewServerError(response.GetHttpStatus(), response.GetHttpContentString(), message)
+ return
+ }
+ var data interface{}
+ err = json.Unmarshal(response.GetHttpContentBytes(), &data)
+ if err != nil {
+ return fmt.Errorf("refresh RoleArn sts token err, json.Unmarshal fail: %s", err.Error())
+ }
+ accessKeyId, err := jmespath.Search("Credentials.AccessKeyId", data)
+ if err != nil {
+ return fmt.Errorf("refresh RoleArn sts token err, fail to get AccessKeyId: %s", err.Error())
+ }
+ accessKeySecret, err := jmespath.Search("Credentials.AccessKeySecret", data)
+ if err != nil {
+ return fmt.Errorf("refresh RoleArn sts token err, fail to get AccessKeySecret: %s", err.Error())
+ }
+ securityToken, err := jmespath.Search("Credentials.SecurityToken", data)
+ if err != nil {
+ return fmt.Errorf("refresh RoleArn sts token err, fail to get SecurityToken: %s", err.Error())
+ }
+ if accessKeyId == nil || accessKeySecret == nil || securityToken == nil {
+ return
+ }
+ signer.sessionCredential = &SessionCredential{
+ AccessKeyId: accessKeyId.(string),
+ AccessKeySecret: accessKeySecret.(string),
+ StsToken: securityToken.(string),
+ }
+ return
+}
+
+func (signer *RamRoleArnSigner) GetSessionCredential() *SessionCredential {
+ return signer.sessionCredential
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_sts_token.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_sts_token.go
new file mode 100644
index 000000000..d0ce36c38
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_sts_token.go
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+)
+
+type StsTokenSigner struct {
+ credential *credentials.StsTokenCredential
+}
+
+func NewStsTokenSigner(credential *credentials.StsTokenCredential) *StsTokenSigner {
+ return &StsTokenSigner{
+ credential: credential,
+ }
+}
+
+func (*StsTokenSigner) GetName() string {
+ return "HMAC-SHA1"
+}
+
+func (*StsTokenSigner) GetType() string {
+ return ""
+}
+
+func (*StsTokenSigner) GetVersion() string {
+ return "1.0"
+}
+
+func (signer *StsTokenSigner) GetAccessKeyId() (accessKeyId string, err error) {
+ return signer.credential.AccessKeyId, nil
+}
+
+func (signer *StsTokenSigner) GetExtraParam() map[string]string {
+ return map[string]string{"SecurityToken": signer.credential.AccessKeyStsToken}
+}
+
+func (signer *StsTokenSigner) Sign(stringToSign, secretSuffix string) string {
+ secret := signer.credential.AccessKeySecret + secretSuffix
+ return ShaHmac1(stringToSign, secret)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_v2.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_v2.go
new file mode 100644
index 000000000..973485298
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers/signer_v2.go
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+package signers
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+)
+
+type SignerV2 struct {
+ credential *credentials.RsaKeyPairCredential
+}
+
+func (signer *SignerV2) GetExtraParam() map[string]string {
+ return nil
+}
+
+func NewSignerV2(credential *credentials.RsaKeyPairCredential) *SignerV2 {
+ return &SignerV2{
+ credential: credential,
+ }
+}
+
+func (*SignerV2) GetName() string {
+ return "SHA256withRSA"
+}
+
+func (*SignerV2) GetType() string {
+ return "PRIVATEKEY"
+}
+
+func (*SignerV2) GetVersion() string {
+ return "1.0"
+}
+
+func (signer *SignerV2) GetAccessKeyId() (accessKeyId string, err error) {
+ return signer.credential.PublicKeyId, err
+}
+
+func (signer *SignerV2) Sign(stringToSign, secretSuffix string) string {
+ secret := signer.credential.PrivateKey
+ return Sha256WithRsa(stringToSign, secret)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/client.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/client.go
new file mode 100644
index 000000000..bc88a8853
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/client.go
@@ -0,0 +1,442 @@
+/*
+ * 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.
+ */
+
+package sdk
+
+import (
+ "fmt"
+ "net/http"
+ "runtime"
+ "strconv"
+ "strings"
+ "sync"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+var debug utils.Debug
+
+func init() {
+ debug = utils.Init("sdk")
+}
+
+// Version this value will be replaced while build: -ldflags="-X sdk.version=x.x.x"
+var Version = "0.0.1"
+
+var DefaultUserAgent = fmt.Sprintf("AlibabaCloud (%s; %s) Golang/%s Core/%s", runtime.GOOS, runtime.GOARCH, strings.Trim(runtime.Version(), "go"), Version)
+
+var hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
+ return fn
+}
+
+// Client the type Client
+type Client struct {
+ regionId string
+ config *Config
+ userAgent map[string]string
+ signer auth.Signer
+ httpClient *http.Client
+ asyncTaskQueue chan func()
+
+ debug bool
+ isRunning bool
+ // void "panic(write to close channel)" cause of addAsync() after Shutdown()
+ asyncChanLock *sync.RWMutex
+}
+
+func (client *Client) Init() (err error) {
+ panic("not support yet")
+}
+
+func (client *Client) InitWithOptions(regionId string, config *Config, credential auth.Credential) (err error) {
+ client.isRunning = true
+ client.asyncChanLock = new(sync.RWMutex)
+ client.regionId = regionId
+ client.config = config
+ client.httpClient = &http.Client{}
+
+ if config.HttpTransport != nil {
+ client.httpClient.Transport = config.HttpTransport
+ }
+
+ if config.Timeout > 0 {
+ client.httpClient.Timeout = config.Timeout
+ }
+
+ if config.EnableAsync {
+ client.EnableAsync(config.GoRoutinePoolSize, config.MaxTaskQueueSize)
+ }
+
+ client.signer, err = auth.NewSignerWithCredential(credential, client.ProcessCommonRequestWithSigner)
+
+ return
+}
+
+// EnableAsync enable the async task queue
+func (client *Client) EnableAsync(routinePoolSize, maxTaskQueueSize int) {
+ client.asyncTaskQueue = make(chan func(), maxTaskQueueSize)
+ for i := 0; i < routinePoolSize; i++ {
+ go func() {
+ for client.isRunning {
+ select {
+ case task, notClosed := <-client.asyncTaskQueue:
+ if notClosed {
+ task()
+ }
+ }
+ }
+ }()
+ }
+}
+
+func (client *Client) InitWithAccessKey(regionId, accessKeyId, accessKeySecret string) (err error) {
+ config := client.InitClientConfig()
+ credential := &credentials.BaseCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ }
+ return client.InitWithOptions(regionId, config, credential)
+}
+
+func (client *Client) InitWithStsToken(regionId, accessKeyId, accessKeySecret, securityToken string) (err error) {
+ config := client.InitClientConfig()
+ credential := &credentials.StsTokenCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ AccessKeyStsToken: securityToken,
+ }
+ return client.InitWithOptions(regionId, config, credential)
+}
+
+func (client *Client) InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (err error) {
+ config := client.InitClientConfig()
+ credential := &credentials.RamRoleArnCredential{
+ AccessKeyId: accessKeyId,
+ AccessKeySecret: accessKeySecret,
+ RoleArn: roleArn,
+ RoleSessionName: roleSessionName,
+ }
+ return client.InitWithOptions(regionId, config, credential)
+}
+
+func (client *Client) InitWithRsaKeyPair(regionId, publicKeyId, privateKey string, sessionExpiration int) (err error) {
+ config := client.InitClientConfig()
+ credential := &credentials.RsaKeyPairCredential{
+ PrivateKey: privateKey,
+ PublicKeyId: publicKeyId,
+ SessionExpiration: sessionExpiration,
+ }
+ return client.InitWithOptions(regionId, config, credential)
+}
+
+func (client *Client) InitWithEcsRamRole(regionId, roleName string) (err error) {
+ config := client.InitClientConfig()
+ credential := &credentials.EcsRamRoleCredential{
+ RoleName: roleName,
+ }
+ return client.InitWithOptions(regionId, config, credential)
+}
+
+func (client *Client) InitClientConfig() (config *Config) {
+ if client.config != nil {
+ return client.config
+ } else {
+ return NewConfig()
+ }
+}
+
+func (client *Client) DoAction(request requests.AcsRequest, response responses.AcsResponse) (err error) {
+ return client.DoActionWithSigner(request, response, nil)
+}
+
+func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (httpRequest *http.Request, err error) {
+ // add clientVersion
+ request.GetHeaders()["x-sdk-core-version"] = Version
+
+ regionId := client.regionId
+ if len(request.GetRegionId()) > 0 {
+ regionId = request.GetRegionId()
+ }
+
+ // resolve endpoint
+ resolveParam := &endpoints.ResolveParam{
+ Domain: request.GetDomain(),
+ Product: request.GetProduct(),
+ RegionId: regionId,
+ LocationProduct: request.GetLocationServiceCode(),
+ LocationEndpointType: request.GetLocationEndpointType(),
+ CommonApi: client.ProcessCommonRequest,
+ }
+ endpoint, err := endpoints.Resolve(resolveParam)
+ if err != nil {
+ return
+ }
+ request.SetDomain(endpoint)
+ if request.GetScheme() == "" {
+ request.SetScheme(client.config.Scheme)
+ }
+ // init request params
+ err = requests.InitParams(request)
+ if err != nil {
+ return
+ }
+
+ // signature
+ var finalSigner auth.Signer
+ if signer != nil {
+ finalSigner = signer
+ } else {
+ finalSigner = client.signer
+ }
+ httpRequest, err = buildHttpRequest(request, finalSigner, regionId)
+ if err == nil {
+ userAgent := DefaultUserAgent + getSendUserAgent(client.config.UserAgent, client.userAgent, request.GetUserAgent())
+ httpRequest.Header.Set("User-Agent", userAgent)
+ }
+
+ return
+}
+
+func getSendUserAgent(configUserAgent string, clientUserAgent, requestUserAgent map[string]string) string {
+ realUserAgent := ""
+ for key1, value1 := range clientUserAgent {
+ for key2, _ := range requestUserAgent {
+ if key1 == key2 {
+ key1 = ""
+ }
+ }
+ if key1 != "" {
+ realUserAgent += fmt.Sprintf(" %s/%s", key1, value1)
+
+ }
+ }
+ for key, value := range requestUserAgent {
+ realUserAgent += fmt.Sprintf(" %s/%s", key, value)
+ }
+ if configUserAgent != "" {
+ return realUserAgent + fmt.Sprintf(" Extra/%s", configUserAgent)
+ }
+ return realUserAgent
+}
+
+func (client *Client) AppendUserAgent(key, value string) {
+ newkey := true
+
+ if client.userAgent == nil {
+ client.userAgent = make(map[string]string)
+ }
+ if strings.ToLower(key) != "core" && strings.ToLower(key) != "go" {
+ for tag, _ := range client.userAgent {
+ if tag == key {
+ client.userAgent[tag] = value
+ newkey = false
+ }
+ }
+ if newkey {
+ client.userAgent[key] = value
+ }
+ }
+}
+
+func (client *Client) BuildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (err error) {
+ _, err = client.buildRequestWithSigner(request, signer)
+ return
+}
+
+func (client *Client) DoActionWithSigner(request requests.AcsRequest, response responses.AcsResponse, signer auth.Signer) (err error) {
+ httpRequest, err := client.buildRequestWithSigner(request, signer)
+ if err != nil {
+ return
+ }
+ var httpResponse *http.Response
+ for retryTimes := 0; retryTimes <= client.config.MaxRetryTime; retryTimes++ {
+ debug("> %s %s %s", httpRequest.Method, httpRequest.URL.RequestURI(), httpRequest.Proto)
+ debug("> Host: %s", httpRequest.Host)
+ for key, value := range httpRequest.Header {
+ debug("> %s: %v", key, strings.Join(value, ""))
+ }
+ debug(">")
+ httpResponse, err = hookDo(client.httpClient.Do)(httpRequest)
+ if err == nil {
+ debug("< %s %s", httpResponse.Proto, httpResponse.Status)
+ for key, value := range httpResponse.Header {
+ debug("< %s: %v", key, strings.Join(value, ""))
+ }
+ }
+ debug("<")
+ // receive error
+ if err != nil {
+ if !client.config.AutoRetry {
+ return
+ } else if retryTimes >= client.config.MaxRetryTime {
+ // timeout but reached the max retry times, return
+ timeoutErrorMsg := fmt.Sprintf(errors.TimeoutErrorMessage, strconv.Itoa(retryTimes+1), strconv.Itoa(retryTimes+1))
+ err = errors.NewClientError(errors.TimeoutErrorCode, timeoutErrorMsg, err)
+ return
+ }
+ }
+ // if status code >= 500 or timeout, will trigger retry
+ if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) {
+ // rewrite signatureNonce and signature
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
+ // buildHttpRequest(request, finalSigner, regionId)
+ if err != nil {
+ return
+ }
+ continue
+ }
+ break
+ }
+ err = responses.Unmarshal(response, httpResponse, request.GetAcceptFormat())
+ // wrap server errors
+ if serverErr, ok := err.(*errors.ServerError); ok {
+ var wrapInfo = map[string]string{}
+ wrapInfo["StringToSign"] = request.GetStringToSign()
+ err = errors.WrapServerError(serverErr, wrapInfo)
+ }
+ return
+}
+
+func buildHttpRequest(request requests.AcsRequest, singer auth.Signer, regionId string) (httpRequest *http.Request, err error) {
+ err = auth.Sign(request, singer, regionId)
+ if err != nil {
+ return
+ }
+ requestMethod := request.GetMethod()
+ requestUrl := request.BuildUrl()
+ body := request.GetBodyReader()
+ httpRequest, err = http.NewRequest(requestMethod, requestUrl, body)
+ if err != nil {
+ return
+ }
+ for key, value := range request.GetHeaders() {
+ httpRequest.Header[key] = []string{value}
+ }
+ // host is a special case
+ if host, containsHost := request.GetHeaders()["Host"]; containsHost {
+ httpRequest.Host = host
+ }
+ return
+}
+
+func isServerError(httpResponse *http.Response) bool {
+ return httpResponse.StatusCode >= http.StatusInternalServerError
+}
+
+/**
+only block when any one of the following occurs:
+1. the asyncTaskQueue is full, increase the queue size to avoid this
+2. Shutdown() in progressing, the client is being closed
+**/
+func (client *Client) AddAsyncTask(task func()) (err error) {
+ if client.asyncTaskQueue != nil {
+ client.asyncChanLock.RLock()
+ defer client.asyncChanLock.RUnlock()
+ if client.isRunning {
+ client.asyncTaskQueue <- task
+ }
+ } else {
+ err = errors.NewClientError(errors.AsyncFunctionNotEnabledCode, errors.AsyncFunctionNotEnabledMessage, nil)
+ }
+ return
+}
+
+func (client *Client) GetConfig() *Config {
+ return client.config
+}
+
+func NewClient() (client *Client, err error) {
+ client = &Client{}
+ err = client.Init()
+ return
+}
+
+func NewClientWithOptions(regionId string, config *Config, credential auth.Credential) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithOptions(regionId, config, credential)
+ return
+}
+
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+ return
+}
+
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+ return
+}
+
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+ return
+}
+
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithEcsRamRole(regionId, roleName)
+ return
+}
+
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+ return
+}
+
+// Deprecated: Use NewClientWithRamRoleArn in this package instead.
+func NewClientWithStsRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+ return NewClientWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+}
+
+// Deprecated: Use NewClientWithEcsRamRole in this package instead.
+func NewClientWithStsRoleNameOnEcs(regionId string, roleName string) (client *Client, err error) {
+ return NewClientWithEcsRamRole(regionId, roleName)
+}
+
+func (client *Client) ProcessCommonRequest(request *requests.CommonRequest) (response *responses.CommonResponse, err error) {
+ request.TransToAcsRequest()
+ response = responses.NewCommonResponse()
+ err = client.DoAction(request, response)
+ return
+}
+
+func (client *Client) ProcessCommonRequestWithSigner(request *requests.CommonRequest, signerInterface interface{}) (response *responses.CommonResponse, err error) {
+ if signer, isSigner := signerInterface.(auth.Signer); isSigner {
+ request.TransToAcsRequest()
+ response = responses.NewCommonResponse()
+ err = client.DoActionWithSigner(request, response, signer)
+ return
+ }
+ panic("should not be here")
+}
+
+func (client *Client) Shutdown() {
+ // lock the addAsync()
+ client.asyncChanLock.Lock()
+ defer client.asyncChanLock.Unlock()
+ if client.asyncTaskQueue != nil {
+ close(client.asyncTaskQueue)
+ }
+ client.isRunning = false
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/client_test.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/client_test.go
new file mode 100644
index 000000000..361bcf64c
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/client_test.go
@@ -0,0 +1,409 @@
+/*
+ * 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.
+ */
+
+package sdk
+
+import (
+ "bytes"
+ "io/ioutil"
+ "net/http"
+ "strconv"
+ "testing"
+ "time"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+
+ "github.com/stretchr/testify/assert"
+)
+
+type signertest struct {
+ name string
+}
+
+func (s *signertest) GetName() string {
+ return ""
+}
+
+func (s *signertest) GetType() string {
+ return ""
+}
+
+func (s *signertest) GetVersion() string {
+ return ""
+}
+
+func (s *signertest) GetAccessKeyId() (string, error) {
+ return "", nil
+}
+
+func (s *signertest) GetExtraParam() map[string]string {
+ return nil
+}
+
+func (s *signertest) Sign(stringToSign, secretSuffix string) string {
+ return ""
+}
+
+func Test_Client(t *testing.T) {
+ defer func() {
+ err := recover()
+ assert.NotNil(t, err)
+ assert.Equal(t, "not support yet", err)
+ }()
+ NewClient()
+}
+
+func Test_NewClientWithOptions(t *testing.T) {
+ c := NewConfig()
+ c.HttpTransport = &http.Transport{
+ IdleConnTimeout: time.Duration(10 * time.Second),
+ }
+ c.EnableAsync = true
+ c.GoRoutinePoolSize = 1
+ c.MaxTaskQueueSize = 1
+ credential := credentials.NewAccessKeyCredential("acesskeyid", "accesskeysecret")
+ client, err := NewClientWithOptions("regionid", c, credential)
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+}
+
+func Test_NewClientWithAccessKey(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+}
+
+func Test_NewClientWithStsToken(t *testing.T) {
+ client, err := NewClientWithStsToken("regionid", "acesskeyid", "accesskeysecret", "token")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+}
+
+func Test_NewClientWithRamRoleArn(t *testing.T) {
+ client, err := NewClientWithRamRoleArn("regionid", "acesskeyid", "accesskeysecret", "roleArn", "roleSessionName")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ config := client.InitClientConfig()
+ assert.NotNil(t, config)
+}
+
+func Test_NewClientWithEcsRamRole(t *testing.T) {
+ client, err := NewClientWithEcsRamRole("regionid", "roleName")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+}
+
+func Test_NewClientWithRsaKeyPair(t *testing.T) {
+ client, err := NewClientWithRsaKeyPair("regionid", "publicKey", "privateKey", 3600)
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+}
+
+func mockResponse(statusCode int, content string) (res *http.Response, err error) {
+ status := strconv.Itoa(statusCode)
+ res = &http.Response{
+ Proto: "HTTP/1.1",
+ ProtoMajor: 1,
+ Header: make(http.Header),
+ StatusCode: statusCode,
+ Status: status + " " + http.StatusText(statusCode),
+ }
+ res.Body = ioutil.NopCloser(bytes.NewReader([]byte(content)))
+ return
+}
+
+func Test_DoAction(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+ request.TransToAcsRequest()
+ response := responses.NewCommonResponse()
+ origTestHookDo := hookDo
+ defer func() { hookDo = origTestHookDo }()
+ hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
+ return func(req *http.Request) (*http.Response, error) {
+ return mockResponse(200, "")
+ }
+ }
+ err = client.DoAction(request, response)
+ assert.Nil(t, err)
+ assert.Equal(t, 200, response.GetHttpStatus())
+ assert.Equal(t, "", response.GetHttpContentString())
+ client.Shutdown()
+ assert.Equal(t, false, client.isRunning)
+}
+
+func Test_DoAction_Timeout(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+ request.TransToAcsRequest()
+ response := responses.NewCommonResponse()
+ origTestHookDo := hookDo
+ defer func() { hookDo = origTestHookDo }()
+ hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
+ return func(req *http.Request) (*http.Response, error) {
+ return mockResponse(200, "")
+ }
+ }
+ err = client.DoAction(request, response)
+ assert.Nil(t, err)
+ assert.Equal(t, 200, response.GetHttpStatus())
+ assert.Equal(t, "", response.GetHttpContentString())
+ client.Shutdown()
+ assert.Equal(t, false, client.isRunning)
+}
+
+func Test_ProcessCommonRequest(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+
+ origTestHookDo := hookDo
+ defer func() { hookDo = origTestHookDo }()
+ hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
+ return func(req *http.Request) (*http.Response, error) {
+ return mockResponse(200, "")
+ }
+ }
+ response, err := client.ProcessCommonRequest(request)
+ assert.Nil(t, err)
+ assert.Equal(t, 200, response.GetHttpStatus())
+ assert.Equal(t, "", response.GetHttpContentString())
+}
+
+func Test_DoAction_With500(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+ request.TransToAcsRequest()
+ response := responses.NewCommonResponse()
+ origTestHookDo := hookDo
+ defer func() { hookDo = origTestHookDo }()
+ hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
+ return func(req *http.Request) (*http.Response, error) {
+ return mockResponse(500, "Server Internel Error")
+ }
+ }
+ err = client.DoAction(request, response)
+ assert.NotNil(t, err)
+ assert.Equal(t, "SDK.ServerError\nErrorCode: \nRecommend: \nRequestId: \nMessage: Server Internel Error", err.Error())
+ assert.Equal(t, 500, response.GetHttpStatus())
+ assert.Equal(t, "Server Internel Error", response.GetHttpContentString())
+}
+
+func TestClient_BuildRequestWithSigner(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+ request.RegionId = "regionid"
+ request.TransToAcsRequest()
+ client.config.UserAgent = "user_agent"
+ err = client.BuildRequestWithSigner(request, nil)
+ assert.Nil(t, err)
+}
+
+func TestClient_BuildRequestWithSigner1(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+ request.RegionId = "regionid"
+ request.TransToAcsRequest()
+ signer := &signertest{
+ name: "signer",
+ }
+ err = client.BuildRequestWithSigner(request, signer)
+ assert.Nil(t, err)
+}
+
+func TestClient_ProcessCommonRequestWithSigner(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+ request.RegionId = "regionid"
+ signer := &signertest{
+ name: "signer",
+ }
+ _, err = client.ProcessCommonRequestWithSigner(request, signer)
+ assert.NotNil(t, err)
+}
+
+func TestClient_AppendUserAgent(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.RegionId = "regionid"
+ signer := &signertest{
+ name: "signer",
+ }
+ request.TransToAcsRequest()
+ httpRequest, err := client.buildRequestWithSigner(request, signer)
+ assert.Nil(t, err)
+ assert.Equal(t, DefaultUserAgent, httpRequest.Header.Get("User-Agent"))
+
+ client.AppendUserAgent("test", "1.01")
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
+ assert.Equal(t, DefaultUserAgent+" test/1.01", httpRequest.Header.Get("User-Agent"))
+
+ request.AppendUserAgent("test", "2.01")
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
+ assert.Equal(t, DefaultUserAgent+" test/2.01", httpRequest.Header.Get("User-Agent"))
+
+ request.AppendUserAgent("test", "2.02")
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
+ assert.Equal(t, DefaultUserAgent+" test/2.02", httpRequest.Header.Get("User-Agent"))
+
+ client.AppendUserAgent("test", "2.01")
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
+ assert.Equal(t, DefaultUserAgent+" test/2.02", httpRequest.Header.Get("User-Agent"))
+
+ client.AppendUserAgent("core", "1.01")
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
+ assert.Equal(t, DefaultUserAgent+" test/2.02", httpRequest.Header.Get("User-Agent"))
+
+ request.AppendUserAgent("core", "1.01")
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
+ assert.Equal(t, DefaultUserAgent+" test/2.02", httpRequest.Header.Get("User-Agent"))
+
+ request1 := requests.NewCommonRequest()
+ request1.Domain = "ecs.aliyuncs.com"
+ request1.Version = "2014-05-26"
+ request1.ApiName = "DescribeRegions"
+ request1.RegionId = "regionid"
+ request1.AppendUserAgent("sys", "1.01")
+ request1.TransToAcsRequest()
+ httpRequest, err = client.buildRequestWithSigner(request1, signer)
+ assert.Nil(t, err)
+ assert.Equal(t, DefaultUserAgent+" test/2.01 sys/1.01", httpRequest.Header.Get("User-Agent"))
+}
+
+func TestClient_ProcessCommonRequestWithSigner_Error(t *testing.T) {
+ client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ request := requests.NewCommonRequest()
+ request.Domain = "ecs.aliyuncs.com"
+ request.Version = "2014-05-26"
+ request.ApiName = "DescribeInstanceStatus"
+
+ request.QueryParams["PageNumber"] = "1"
+ request.QueryParams["PageSize"] = "30"
+ request.RegionId = "regionid"
+ defer func() {
+ err := recover()
+ assert.NotNil(t, err)
+ }()
+ _, err = client.ProcessCommonRequestWithSigner(request, nil)
+ assert.NotNil(t, err)
+}
+
+func TestClient_NewClientWithStsRoleNameOnEcs(t *testing.T) {
+ client, err := NewClientWithStsRoleNameOnEcs("regionid", "rolename")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ config := client.GetConfig()
+ assert.NotNil(t, config)
+ err = client.AddAsyncTask(nil)
+ assert.NotNil(t, err)
+}
+
+func TestClient_NewClientWithStsRoleArn(t *testing.T) {
+ client, err := NewClientWithStsRoleArn("regionid", "acesskeyid", "accesskeysecret", "rolearn", "rolesessionname")
+ assert.Nil(t, err)
+ assert.NotNil(t, client)
+ assert.Equal(t, true, client.isRunning)
+ task := func() {}
+ client.asyncTaskQueue = make(chan func(), 1)
+ err = client.AddAsyncTask(task)
+ assert.Nil(t, err)
+ client.Shutdown()
+ assert.Equal(t, false, client.isRunning)
+}
+
+//func Test_EnableAsync(t *testing.T) {
+// client, err := NewClientWithAccessKey("regionid", "acesskeyid", "accesskeysecret")
+// assert.Nil(t, err)
+// assert.NotNil(t, client)
+// assert.Equal(t, true, client.isRunning)
+// client.EnableAsync(2, 8)
+// client.Shutdown()
+// assert.Equal(t, false, client.isRunning)
+//}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/config.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/config.go
new file mode 100644
index 000000000..e8862e0c2
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/config.go
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ */
+
+package sdk
+
+import (
+ "net/http"
+ "time"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+type Config struct {
+ AutoRetry bool `default:"true"`
+ MaxRetryTime int `default:"3"`
+ UserAgent string `default:""`
+ Debug bool `default:"false"`
+ Timeout time.Duration `default:"10000000000"`
+ HttpTransport *http.Transport `default:""`
+ EnableAsync bool `default:"false"`
+ MaxTaskQueueSize int `default:"1000"`
+ GoRoutinePoolSize int `default:"5"`
+ Scheme string `default:"HTTP"`
+}
+
+func NewConfig() (config *Config) {
+ config = &Config{}
+ utils.InitStructWithDefaultTag(config)
+ return
+}
+
+func (c *Config) WithAutoRetry(isAutoRetry bool) *Config {
+ c.AutoRetry = isAutoRetry
+ return c
+}
+
+func (c *Config) WithMaxRetryTime(maxRetryTime int) *Config {
+ c.MaxRetryTime = maxRetryTime
+ return c
+}
+
+func (c *Config) WithUserAgent(userAgent string) *Config {
+ c.UserAgent = userAgent
+ return c
+}
+
+func (c *Config) WithDebug(isDebug bool) *Config {
+ c.Debug = isDebug
+ return c
+}
+
+func (c *Config) WithTimeout(timeout time.Duration) *Config {
+ c.Timeout = timeout
+ return c
+}
+
+func (c *Config) WithHttpTransport(httpTransport *http.Transport) *Config {
+ c.HttpTransport = httpTransport
+ return c
+}
+
+func (c *Config) WithEnableAsync(isEnableAsync bool) *Config {
+ c.EnableAsync = isEnableAsync
+ return c
+}
+
+func (c *Config) WithMaxTaskQueueSize(maxTaskQueueSize int) *Config {
+ c.MaxTaskQueueSize = maxTaskQueueSize
+ return c
+}
+
+func (c *Config) WithGoRoutinePoolSize(goRoutinePoolSize int) *Config {
+ c.GoRoutinePoolSize = goRoutinePoolSize
+ return c
+}
+
+func (c *Config) WithScheme(scheme string) *Config {
+ c.Scheme = scheme
+ return c
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/config_test.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/config_test.go
new file mode 100644
index 000000000..b613821e3
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/config_test.go
@@ -0,0 +1,52 @@
+package sdk
+
+import (
+ "net/http"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_Config(t *testing.T) {
+ config := NewConfig()
+ assert.NotNil(t, config, "NewConfig failed")
+ assert.Equal(t, true, config.AutoRetry, "Default AutoRetry should be true")
+ assert.Equal(t, 3, config.MaxRetryTime, "Default MaxRetryTime should be 3")
+ assert.Equal(t, "", config.UserAgent, "Default UserAgent should be empty")
+ assert.Equal(t, false, config.Debug, "Default AutoRetry should be false")
+ assert.Equal(t, time.Duration(10000000000), config.Timeout, "Default Timeout should be 10000000000")
+ assert.Equal(t, (*http.Transport)(nil), config.HttpTransport, "Default HttpTransport should be nil")
+ assert.Equal(t, false, config.EnableAsync, "Default EnableAsync should be false")
+ assert.Equal(t, 1000, config.MaxTaskQueueSize, "Default MaxTaskQueueSize should be 1000")
+ assert.Equal(t, 5, config.GoRoutinePoolSize, "Default GoRoutinePoolSize should be 5")
+ assert.Equal(t, "HTTP", config.Scheme, "Default Scheme should be HTTP")
+
+ transport := &http.Transport{
+ MaxIdleConns: 10,
+ IdleConnTimeout: 30 * time.Second,
+ DisableCompression: true,
+ }
+ config.
+ WithAutoRetry(false).
+ WithMaxRetryTime(0).
+ WithUserAgent("new user agent").
+ WithDebug(true).
+ WithTimeout(time.Duration(500000)).
+ WithHttpTransport(transport).
+ WithEnableAsync(true).
+ WithMaxTaskQueueSize(1).
+ WithGoRoutinePoolSize(10).
+ WithScheme("HTTPS")
+
+ assert.Equal(t, 0, config.MaxRetryTime)
+ assert.Equal(t, false, config.AutoRetry)
+ assert.Equal(t, "new user agent", config.UserAgent)
+ assert.Equal(t, true, config.Debug)
+ assert.Equal(t, time.Duration(500000), config.Timeout)
+ assert.Equal(t, transport, config.HttpTransport)
+ assert.Equal(t, true, config.EnableAsync)
+ assert.Equal(t, 1, config.MaxTaskQueueSize)
+ assert.Equal(t, 10, config.GoRoutinePoolSize)
+ assert.Equal(t, "HTTPS", config.Scheme)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/endpoints_config.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/endpoints_config.go
new file mode 100644
index 000000000..6c0e49870
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/endpoints_config.go
@@ -0,0 +1,505 @@
+package endpoints
+
+import (
+ "encoding/json"
+ "fmt"
+ "sync"
+)
+
+const endpointsJson = "{" +
+ " \"products\":[" +
+ " {" +
+ " \"code\": \"aegis\"," +
+ " \"document_id\": \"28449\"," +
+ " \"location_service_code\": \"vipaegis\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"aegis.cn-hangzhou.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"alidns\"," +
+ " \"document_id\": \"29739\"," +
+ " \"location_service_code\": \"alidns\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"alidns.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"arms\"," +
+ " \"document_id\": \"42924\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"ap-southeast-1\"," +
+ " \"endpoint\": \"arms.ap-southeast-1.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-beijing\"," +
+ " \"endpoint\": \"arms.cn-beijing.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-hangzhou\"," +
+ " \"endpoint\": \"arms.cn-hangzhou.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-hongkong\"," +
+ " \"endpoint\": \"arms.cn-hongkong.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-qingdao\"," +
+ " \"endpoint\": \"arms.cn-qingdao.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-shanghai\"," +
+ " \"endpoint\": \"arms.cn-shanghai.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-shenzhen\"," +
+ " \"endpoint\": \"arms.cn-shenzhen.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"arms.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"batchcompute\"," +
+ " \"document_id\": \"44717\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"ap-southeast-1\"," +
+ " \"endpoint\": \"batchcompute.ap-southeast-1.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-beijing\"," +
+ " \"endpoint\": \"batchcompute.cn-beijing.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-hangzhou\"," +
+ " \"endpoint\": \"batchcompute.cn-hangzhou.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-huhehaote\"," +
+ " \"endpoint\": \"batchcompute.cn-huhehaote.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-qingdao\"," +
+ " \"endpoint\": \"batchcompute.cn-qingdao.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-shanghai\"," +
+ " \"endpoint\": \"batchcompute.cn-shanghai.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-shenzhen\"," +
+ " \"endpoint\": \"batchcompute.cn-shenzhen.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-zhangjiakou\"," +
+ " \"endpoint\": \"batchcompute.cn-zhangjiakou.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"us-west-1\"," +
+ " \"endpoint\": \"batchcompute.us-west-1.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"batchcompute.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"ccc\"," +
+ " \"document_id\": \"63027\"," +
+ " \"location_service_code\": \"ccc\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"cn-hangzhou\"," +
+ " \"endpoint\": \"ccc.cn-hangzhou.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-shanghai\"," +
+ " \"endpoint\": \"ccc.cn-shanghai.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"ccc.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cdn\"," +
+ " \"document_id\": \"27148\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"cdn.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cds\"," +
+ " \"document_id\": \"62887\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"cds.cn-beijing.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"chatbot\"," +
+ " \"document_id\": \"60760\"," +
+ " \"location_service_code\": \"beebot\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"chatbot.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cloudapi\"," +
+ " \"document_id\": \"43590\"," +
+ " \"location_service_code\": \"apigateway\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"ap-northeast-1\"," +
+ " \"endpoint\": \"apigateway.ap-northeast-1.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"us-west-1\"," +
+ " \"endpoint\": \"apigateway.us-west-1.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"apigateway.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cloudauth\"," +
+ " \"document_id\": \"60687\"," +
+ " \"location_service_code\": \"cloudauth\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"cloudauth.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cloudphoto\"," +
+ " \"document_id\": \"59902\"," +
+ " \"location_service_code\": \"cloudphoto\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"cloudphoto.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cloudwf\"," +
+ " \"document_id\": \"58111\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"cloudwf.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cms\"," +
+ " \"document_id\": \"28615\"," +
+ " \"location_service_code\": \"cms\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cr\"," +
+ " \"document_id\": \"60716\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"cr.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"cs\"," +
+ " \"document_id\": \"26043\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"cs.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"csb\"," +
+ " \"document_id\": \"64837\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"cn-beijing\"," +
+ " \"endpoint\": \"csb.cn-beijing.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-hangzhou\"," +
+ " \"endpoint\": \"csb.cn-hangzhou.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"csb.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"dds\"," +
+ " \"document_id\": \"61715\"," +
+ " \"location_service_code\": \"dds\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"mongodb.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"mongodb.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"dm\"," +
+ " \"document_id\": \"29434\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"ap-southeast-1\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"ap-southeast-2\"," +
+ " \"endpoint\": \"dm.ap-southeast-2.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-beijing\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-hangzhou\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-hongkong\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-qingdao\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-shanghai\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"cn-shenzhen\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"us-east-1\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"us-west-1\"," +
+ " \"endpoint\": \"dm.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"dm.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"dm.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"domain\"," +
+ " \"document_id\": \"42875\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"domain.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"domain.aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"domain-intl\"," +
+ " \"document_id\": \"\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"domain-intl.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"domain-intl.aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"drds\"," +
+ " \"document_id\": \"51111\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"drds.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"drds.aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"ecs\"," +
+ " \"document_id\": \"25484\"," +
+ " \"location_service_code\": \"ecs\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"emr\"," +
+ " \"document_id\": \"28140\"," +
+ " \"location_service_code\": \"emr\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"emr.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"ess\"," +
+ " \"document_id\": \"25925\"," +
+ " \"location_service_code\": \"ess\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"ess.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"green\"," +
+ " \"document_id\": \"28427\"," +
+ " \"location_service_code\": \"green\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"green.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"hpc\"," +
+ " \"document_id\": \"35201\"," +
+ " \"location_service_code\": \"hpc\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"hpc.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"httpdns\"," +
+ " \"document_id\": \"52679\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"httpdns-api.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"iot\"," +
+ " \"document_id\": \"30557\"," +
+ " \"location_service_code\": \"iot\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"iot.[RegionId].aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"itaas\"," +
+ " \"document_id\": \"55759\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"itaas.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"jaq\"," +
+ " \"document_id\": \"35037\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"jaq.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"live\"," +
+ " \"document_id\": \"48207\"," +
+ " \"location_service_code\": \"live\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"live.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"mts\"," +
+ " \"document_id\": \"29212\"," +
+ " \"location_service_code\": \"mts\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"nas\"," +
+ " \"document_id\": \"62598\"," +
+ " \"location_service_code\": \"nas\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"ons\"," +
+ " \"document_id\": \"44416\"," +
+ " \"location_service_code\": \"ons\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"polardb\"," +
+ " \"document_id\": \"58764\"," +
+ " \"location_service_code\": \"polardb\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"ap-south-1\"," +
+ " \"endpoint\": \"polardb.ap-south-1.aliyuncs.com\"" +
+ " }, {" +
+ " \"region\": \"ap-southeast-5\"," +
+ " \"endpoint\": \"polardb.ap-southeast-5.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"polardb.aliyuncs.com\"" +
+ " }," +
+ " {" +
+ " \"code\": \"push\"," +
+ " \"document_id\": \"30074\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"cloudpush.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"qualitycheck\"," +
+ " \"document_id\": \"50807\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": [ {" +
+ " \"region\": \"cn-hangzhou\"," +
+ " \"endpoint\": \"qualitycheck.cn-hangzhou.aliyuncs.com\"" +
+ " }]," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"r-kvstore\"," +
+ " \"document_id\": \"60831\"," +
+ " \"location_service_code\": \"redisa\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"ram\"," +
+ " \"document_id\": \"28672\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"ram.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"rds\"," +
+ " \"document_id\": \"26223\"," +
+ " \"location_service_code\": \"rds\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"ros\"," +
+ " \"document_id\": \"28899\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"ros.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"sas-api\"," +
+ " \"document_id\": \"28498\"," +
+ " \"location_service_code\": \"sas\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"slb\"," +
+ " \"document_id\": \"27565\"," +
+ " \"location_service_code\": \"slb\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"sts\"," +
+ " \"document_id\": \"28756\"," +
+ " \"location_service_code\": \"\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"sts.aliyuncs.com\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"vod\"," +
+ " \"document_id\": \"60574\"," +
+ " \"location_service_code\": \"vod\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"vpc\"," +
+ " \"document_id\": \"34962\"," +
+ " \"location_service_code\": \"vpc\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }," +
+ " {" +
+ " \"code\": \"waf\"," +
+ " \"document_id\": \"62847\"," +
+ " \"location_service_code\": \"waf\"," +
+ " \"regional_endpoints\": []," +
+ " \"global_endpoint\": \"\"," +
+ " \"regional_endpoint_pattern\": \"\"" +
+ " }]" +
+ "}"
+
+var initOnce sync.Once
+var data interface{}
+
+func getEndpointConfigData() interface{} {
+ initOnce.Do(func() {
+ err := json.Unmarshal([]byte(endpointsJson), &data)
+ if err != nil {
+ panic(fmt.Sprintf("init endpoint config data failed. %s", err))
+ }
+ })
+ return data
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/local_global_resolver.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/local_global_resolver.go
new file mode 100644
index 000000000..160e62cb6
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/local_global_resolver.go
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+package endpoints
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/jmespath/go-jmespath"
+)
+
+type LocalGlobalResolver struct {
+}
+
+func (resolver *LocalGlobalResolver) GetName() (name string) {
+ name = "local global resolver"
+ return
+}
+
+func (resolver *LocalGlobalResolver) TryResolve(param *ResolveParam) (endpoint string, support bool, err error) {
+ // get the global endpoints configs
+ endpointExpression := fmt.Sprintf("products[?code=='%s'].global_endpoint", strings.ToLower(param.Product))
+ endpointData, err := jmespath.Search(endpointExpression, getEndpointConfigData())
+ if err == nil && endpointData != nil && len(endpointData.([]interface{})) > 0 {
+ endpoint = endpointData.([]interface{})[0].(string)
+ support = len(endpoint) > 0
+ return
+ }
+ support = false
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/local_regional_resolver.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/local_regional_resolver.go
new file mode 100644
index 000000000..7fee64d42
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/local_regional_resolver.go
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+package endpoints
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/jmespath/go-jmespath"
+)
+
+type LocalRegionalResolver struct {
+}
+
+func (resolver *LocalRegionalResolver) GetName() (name string) {
+ name = "local regional resolver"
+ return
+}
+
+func (resolver *LocalRegionalResolver) TryResolve(param *ResolveParam) (endpoint string, support bool, err error) {
+ // get the regional endpoints configs
+ regionalExpression := fmt.Sprintf("products[?code=='%s'].regional_endpoints", strings.ToLower(param.Product))
+ regionalData, err := jmespath.Search(regionalExpression, getEndpointConfigData())
+ if err == nil && regionalData != nil && len(regionalData.([]interface{})) > 0 {
+ endpointExpression := fmt.Sprintf("[0][?region=='%s'].endpoint", strings.ToLower(param.RegionId))
+ var endpointData interface{}
+ endpointData, err = jmespath.Search(endpointExpression, regionalData)
+ if err == nil && endpointData != nil && len(endpointData.([]interface{})) > 0 {
+ endpoint = endpointData.([]interface{})[0].(string)
+ support = len(endpoint) > 0
+ return
+ }
+ }
+ support = false
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/location_resolver.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/location_resolver.go
new file mode 100644
index 000000000..cc354cc4d
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/location_resolver.go
@@ -0,0 +1,176 @@
+/*
+ * 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.
+ */
+package endpoints
+
+import (
+ "encoding/json"
+ "sync"
+ "time"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+)
+
+const (
+ // EndpointCacheExpireTime ...
+ EndpointCacheExpireTime = 3600 //Seconds
+)
+
+// Cache caches endpoint for specific product and region
+type Cache struct {
+ sync.RWMutex
+ cache map[string]interface{}
+}
+
+// Get ...
+func (c *Cache) Get(k string) (v interface{}) {
+ c.RLock()
+ v = c.cache[k]
+ c.RUnlock()
+ return
+}
+
+// Set ...
+func (c *Cache) Set(k string, v interface{}) {
+ c.Lock()
+ c.cache[k] = v
+ c.Unlock()
+}
+
+var lastClearTimePerProduct = &Cache{cache: make(map[string]interface{})}
+var endpointCache = &Cache{cache: make(map[string]interface{})}
+
+// LocationResolver ...
+type LocationResolver struct {
+}
+
+func (resolver *LocationResolver) GetName() (name string) {
+ name = "location resolver"
+ return
+}
+
+// TryResolve resolves endpoint giving product and region
+func (resolver *LocationResolver) TryResolve(param *ResolveParam) (endpoint string, support bool, err error) {
+ if len(param.LocationProduct) <= 0 {
+ support = false
+ return
+ }
+
+ //get from cache
+ cacheKey := param.Product + "#" + param.RegionId
+ var ok bool
+ endpoint, ok = endpointCache.Get(cacheKey).(string)
+
+ if ok && len(endpoint) > 0 && !CheckCacheIsExpire(cacheKey) {
+ support = true
+ return
+ }
+
+ //get from remote
+ getEndpointRequest := requests.NewCommonRequest()
+
+ getEndpointRequest.Product = "Location"
+ getEndpointRequest.Version = "2015-06-12"
+ getEndpointRequest.ApiName = "DescribeEndpoints"
+ getEndpointRequest.Domain = "location-readonly.aliyuncs.com"
+ getEndpointRequest.Method = "GET"
+ getEndpointRequest.Scheme = requests.HTTPS
+
+ getEndpointRequest.QueryParams["Id"] = param.RegionId
+ getEndpointRequest.QueryParams["ServiceCode"] = param.LocationProduct
+ if len(param.LocationEndpointType) > 0 {
+ getEndpointRequest.QueryParams["Type"] = param.LocationEndpointType
+ } else {
+ getEndpointRequest.QueryParams["Type"] = "openAPI"
+ }
+
+ response, err := param.CommonApi(getEndpointRequest)
+ if err != nil {
+ support = false
+ return
+ }
+
+ if !response.IsSuccess() {
+ support = false
+ return
+ }
+
+ var getEndpointResponse GetEndpointResponse
+ err = json.Unmarshal([]byte(response.GetHttpContentString()), &getEndpointResponse)
+ if err != nil {
+ support = false
+ return
+ }
+
+ if !getEndpointResponse.Success || getEndpointResponse.Endpoints == nil {
+ support = false
+ return
+ }
+ if len(getEndpointResponse.Endpoints.Endpoint) <= 0 {
+ support = false
+ return
+ }
+ if len(getEndpointResponse.Endpoints.Endpoint[0].Endpoint) > 0 {
+ endpoint = getEndpointResponse.Endpoints.Endpoint[0].Endpoint
+ endpointCache.Set(cacheKey, endpoint)
+ lastClearTimePerProduct.Set(cacheKey, time.Now().Unix())
+ support = true
+ return
+ }
+
+ support = false
+ return
+}
+
+// CheckCacheIsExpire ...
+func CheckCacheIsExpire(cacheKey string) bool {
+ lastClearTime, ok := lastClearTimePerProduct.Get(cacheKey).(int64)
+ if !ok {
+ return true
+ }
+
+ if lastClearTime <= 0 {
+ lastClearTime = time.Now().Unix()
+ lastClearTimePerProduct.Set(cacheKey, lastClearTime)
+ }
+
+ now := time.Now().Unix()
+ elapsedTime := now - lastClearTime
+ if elapsedTime > EndpointCacheExpireTime {
+ return true
+ }
+
+ return false
+}
+
+// GetEndpointResponse ...
+type GetEndpointResponse struct {
+ Endpoints *EndpointsObj
+ RequestId string
+ Success bool
+}
+
+// EndpointsObj ...
+type EndpointsObj struct {
+ Endpoint []EndpointObj
+}
+
+// EndpointObj ...
+type EndpointObj struct {
+ // Protocols map[string]string
+ Type string
+ Namespace string
+ Id string
+ SerivceCode string
+ Endpoint string
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/mapping_resolver.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/mapping_resolver.go
new file mode 100644
index 000000000..e39f53367
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/mapping_resolver.go
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+package endpoints
+
+import (
+ "fmt"
+ "strings"
+)
+
+const keyFormatter = "%s::%s"
+
+var endpointMapping = make(map[string]string)
+
+// AddEndpointMapping Use product id and region id as key to store the endpoint into inner map
+func AddEndpointMapping(regionId, productId, endpoint string) (err error) {
+ key := fmt.Sprintf(keyFormatter, strings.ToLower(regionId), strings.ToLower(productId))
+ endpointMapping[key] = endpoint
+ return nil
+}
+
+// MappingResolver the mapping resolver type
+type MappingResolver struct {
+}
+
+// GetName get the resolver name: "mapping resolver"
+func (resolver *MappingResolver) GetName() (name string) {
+ name = "mapping resolver"
+ return
+}
+
+// TryResolve use Product and RegionId as key to find endpoint from inner map
+func (resolver *MappingResolver) TryResolve(param *ResolveParam) (endpoint string, support bool, err error) {
+ key := fmt.Sprintf(keyFormatter, strings.ToLower(param.RegionId), strings.ToLower(param.Product))
+ endpoint, contains := endpointMapping[key]
+ return endpoint, contains, nil
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/resolver.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/resolver.go
new file mode 100644
index 000000000..5e1e30530
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/resolver.go
@@ -0,0 +1,98 @@
+/*
+ * 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.
+ */
+
+package endpoints
+
+import (
+ "encoding/json"
+ "fmt"
+ "sync"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+var debug utils.Debug
+
+func init() {
+ debug = utils.Init("sdk")
+}
+
+const (
+ ResolveEndpointUserGuideLink = ""
+)
+
+var once sync.Once
+var resolvers []Resolver
+
+type Resolver interface {
+ TryResolve(param *ResolveParam) (endpoint string, support bool, err error)
+ GetName() (name string)
+}
+
+// Resolve resolve endpoint with params
+// It will resolve with each supported resolver until anyone resolved
+func Resolve(param *ResolveParam) (endpoint string, err error) {
+ supportedResolvers := getAllResolvers()
+ var lastErr error
+ for _, resolver := range supportedResolvers {
+ endpoint, supported, resolveErr := resolver.TryResolve(param)
+ if resolveErr != nil {
+ lastErr = resolveErr
+ }
+
+ if supported {
+ debug("resolve endpoint with %s\n", param)
+ debug("\t%s by resolver(%s)\n", endpoint, resolver.GetName())
+ return endpoint, nil
+ }
+ }
+
+ // not support
+ errorMsg := fmt.Sprintf(errors.CanNotResolveEndpointErrorMessage, param, ResolveEndpointUserGuideLink)
+ err = errors.NewClientError(errors.CanNotResolveEndpointErrorCode, errorMsg, lastErr)
+ return
+}
+
+func getAllResolvers() []Resolver {
+ once.Do(func() {
+ resolvers = []Resolver{
+ &SimpleHostResolver{},
+ &MappingResolver{},
+ &LocationResolver{},
+ &LocalRegionalResolver{},
+ &LocalGlobalResolver{},
+ }
+ })
+ return resolvers
+}
+
+type ResolveParam struct {
+ Domain string
+ Product string
+ RegionId string
+ LocationProduct string
+ LocationEndpointType string
+ CommonApi func(request *requests.CommonRequest) (response *responses.CommonResponse, err error) `json:"-"`
+}
+
+func (param *ResolveParam) String() string {
+ jsonBytes, err := json.Marshal(param)
+ if err != nil {
+ return fmt.Sprint("ResolveParam.String() process error:", err)
+ }
+ return string(jsonBytes)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/simple_host_resolver.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/simple_host_resolver.go
new file mode 100644
index 000000000..9ba2346c6
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints/simple_host_resolver.go
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+package endpoints
+
+// SimpleHostResolver the simple host resolver type
+type SimpleHostResolver struct {
+}
+
+// GetName get the resolver name: "simple host resolver"
+func (resolver *SimpleHostResolver) GetName() (name string) {
+ name = "simple host resolver"
+ return
+}
+
+// TryResolve if the Domain exist in param, use it as endpoint
+func (resolver *SimpleHostResolver) TryResolve(param *ResolveParam) (endpoint string, support bool, err error) {
+ if support = len(param.Domain) > 0; support {
+ endpoint = param.Domain
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/client_error.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/client_error.go
new file mode 100644
index 000000000..1e2d9c004
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/client_error.go
@@ -0,0 +1,92 @@
+/*
+ * 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.
+ */
+
+package errors
+
+import "fmt"
+
+const (
+ DefaultClientErrorStatus = 400
+ DefaultClientErrorCode = "SDK.ClientError"
+
+ UnsupportedCredentialErrorCode = "SDK.UnsupportedCredential"
+ UnsupportedCredentialErrorMessage = "Specified credential (type = %s) is not supported, please check"
+
+ CanNotResolveEndpointErrorCode = "SDK.CanNotResolveEndpoint"
+ CanNotResolveEndpointErrorMessage = "Can not resolve endpoint(param = %s), please check your accessKey with secret, and read the user guide\n %s"
+
+ UnsupportedParamPositionErrorCode = "SDK.UnsupportedParamPosition"
+ UnsupportedParamPositionErrorMessage = "Specified param position (%s) is not supported, please upgrade sdk and retry"
+
+ AsyncFunctionNotEnabledCode = "SDK.AsyncFunctionNotEnabled"
+ AsyncFunctionNotEnabledMessage = "Async function is not enabled in client, please invoke 'client.EnableAsync' function"
+
+ UnknownRequestTypeErrorCode = "SDK.UnknownRequestType"
+ UnknownRequestTypeErrorMessage = "Unknown Request Type: %s"
+
+ MissingParamErrorCode = "SDK.MissingParam"
+ InvalidParamErrorCode = "SDK.InvalidParam"
+
+ JsonUnmarshalErrorCode = "SDK.JsonUnmarshalError"
+ JsonUnmarshalErrorMessage = "Failed to unmarshal response, but you can get the data via response.GetHttpStatusCode() and response.GetHttpContentString()"
+
+ TimeoutErrorCode = "SDK.TimeoutError"
+ TimeoutErrorMessage = "The request timed out %s times(%s for retry), perhaps we should have the threshold raised a little?"
+)
+
+type ClientError struct {
+ errorCode string
+ message string
+ originError error
+}
+
+func NewClientError(errorCode, message string, originErr error) Error {
+ return &ClientError{
+ errorCode: errorCode,
+ message: message,
+ originError: originErr,
+ }
+}
+
+func (err *ClientError) Error() string {
+ clientErrMsg := fmt.Sprintf("[%s] %s", err.ErrorCode(), err.message)
+ if err.originError != nil {
+ return clientErrMsg + "\ncaused by:\n" + err.originError.Error()
+ }
+ return clientErrMsg
+}
+
+func (err *ClientError) OriginError() error {
+ return err.originError
+}
+
+func (*ClientError) HttpStatus() int {
+ return DefaultClientErrorStatus
+}
+
+func (err *ClientError) ErrorCode() string {
+ if err.errorCode == "" {
+ return DefaultClientErrorCode
+ } else {
+ return err.errorCode
+ }
+}
+
+func (err *ClientError) Message() string {
+ return err.message
+}
+
+func (err *ClientError) String() string {
+ return err.Error()
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/error.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/error.go
new file mode 100644
index 000000000..49962f3b5
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/error.go
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+package errors
+
+type Error interface {
+ error
+ HttpStatus() int
+ ErrorCode() string
+ Message() string
+ OriginError() error
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/server_error.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/server_error.go
new file mode 100644
index 000000000..1b7810414
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/server_error.go
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ */
+
+package errors
+
+import (
+ "encoding/json"
+ "fmt"
+
+ "github.com/jmespath/go-jmespath"
+)
+
+var wrapperList = []ServerErrorWrapper{
+ &SignatureDostNotMatchWrapper{},
+}
+
+type ServerError struct {
+ httpStatus int
+ requestId string
+ hostId string
+ errorCode string
+ recommend string
+ message string
+ comment string
+}
+
+type ServerErrorWrapper interface {
+ tryWrap(error *ServerError, wrapInfo map[string]string) bool
+}
+
+func (err *ServerError) Error() string {
+ return fmt.Sprintf("SDK.ServerError\nErrorCode: %s\nRecommend: %s\nRequestId: %s\nMessage: %s",
+ err.errorCode, err.comment+err.recommend, err.requestId, err.message)
+}
+
+func NewServerError(httpStatus int, responseContent, comment string) Error {
+ result := &ServerError{
+ httpStatus: httpStatus,
+ message: responseContent,
+ comment: comment,
+ }
+
+ var data interface{}
+ err := json.Unmarshal([]byte(responseContent), &data)
+ if err == nil {
+ requestId, _ := jmespath.Search("RequestId", data)
+ hostId, _ := jmespath.Search("HostId", data)
+ errorCode, _ := jmespath.Search("Code", data)
+ recommend, _ := jmespath.Search("Recommend", data)
+ message, _ := jmespath.Search("Message", data)
+
+ if requestId != nil {
+ result.requestId = requestId.(string)
+ }
+ if hostId != nil {
+ result.hostId = hostId.(string)
+ }
+ if errorCode != nil {
+ result.errorCode = errorCode.(string)
+ }
+ if recommend != nil {
+ result.recommend = recommend.(string)
+ }
+ if message != nil {
+ result.message = message.(string)
+ }
+ }
+
+ return result
+}
+
+func WrapServerError(originError *ServerError, wrapInfo map[string]string) *ServerError {
+ for _, wrapper := range wrapperList {
+ ok := wrapper.tryWrap(originError, wrapInfo)
+ if ok {
+ return originError
+ }
+ }
+ return originError
+}
+
+func (err *ServerError) HttpStatus() int {
+ return err.httpStatus
+}
+
+func (err *ServerError) ErrorCode() string {
+ return err.errorCode
+}
+
+func (err *ServerError) Message() string {
+ return err.message
+}
+
+func (err *ServerError) OriginError() error {
+ return nil
+}
+
+func (err *ServerError) HostId() string {
+ return err.hostId
+}
+
+func (err *ServerError) RequestId() string {
+ return err.requestId
+}
+
+func (err *ServerError) Recommend() string {
+ return err.recommend
+}
+
+func (err *ServerError) Comment() string {
+ return err.comment
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/signature_does_not_match_wrapper.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/signature_does_not_match_wrapper.go
new file mode 100644
index 000000000..c2f19e245
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors/signature_does_not_match_wrapper.go
@@ -0,0 +1,43 @@
+package errors
+
+import (
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+const SignatureDostNotMatchErrorCode = "SignatureDoesNotMatch"
+const MessagePrefix = "Specified signature is not matched with our calculation. server string to sign is:"
+
+var debug utils.Debug
+
+func init() {
+ debug = utils.Init("sdk")
+}
+
+type SignatureDostNotMatchWrapper struct {
+}
+
+func (*SignatureDostNotMatchWrapper) tryWrap(error *ServerError, wrapInfo map[string]string) (ok bool) {
+ clientStringToSign := wrapInfo["StringToSign"]
+ if error.errorCode == SignatureDostNotMatchErrorCode && clientStringToSign != "" {
+ message := error.message
+ if strings.HasPrefix(message, MessagePrefix) {
+ serverStringToSign := message[len(MessagePrefix):]
+
+ if clientStringToSign == serverStringToSign {
+ // user secret is error
+ error.recommend = "Please check you AccessKeySecret"
+ } else {
+ debug("Client StringToSign: %s", clientStringToSign)
+ debug("Server StringToSign: %s", serverStringToSign)
+ error.recommend = "This may be a bug with the SDK and we hope you can submit this question in the " +
+ "github issue(https://github.com/aliyun/alibaba-cloud-sdk-go/issues), thanks very much"
+ }
+ }
+ ok = true
+ return
+ }
+ ok = false
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/acs_request.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/acs_request.go
new file mode 100644
index 000000000..54aa3c962
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/acs_request.go
@@ -0,0 +1,334 @@
+/*
+ * 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.
+ */
+
+package requests
+
+import (
+ "fmt"
+ "io"
+ "reflect"
+ "strconv"
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+)
+
+const (
+ RPC = "RPC"
+ ROA = "ROA"
+
+ HTTP = "HTTP"
+ HTTPS = "HTTPS"
+
+ DefaultHttpPort = "80"
+
+ GET = "GET"
+ PUT = "PUT"
+ POST = "POST"
+ DELETE = "DELETE"
+ HEAD = "HEAD"
+ OPTIONS = "OPTIONS"
+
+ Json = "application/json"
+ Xml = "application/xml"
+ Raw = "application/octet-stream"
+ Form = "application/x-www-form-urlencoded"
+
+ Header = "Header"
+ Query = "Query"
+ Body = "Body"
+ Path = "Path"
+
+ HeaderSeparator = "\n"
+)
+
+// interface
+type AcsRequest interface {
+ GetScheme() string
+ GetMethod() string
+ GetDomain() string
+ GetPort() string
+ GetRegionId() string
+ GetHeaders() map[string]string
+ GetQueryParams() map[string]string
+ GetFormParams() map[string]string
+ GetContent() []byte
+ GetBodyReader() io.Reader
+ GetStyle() string
+ GetProduct() string
+ GetVersion() string
+ GetActionName() string
+ GetAcceptFormat() string
+ GetLocationServiceCode() string
+ GetLocationEndpointType() string
+
+ GetUserAgent() map[string]string
+
+ SetStringToSign(stringToSign string)
+ GetStringToSign() string
+
+ SetDomain(domain string)
+ SetContent(content []byte)
+ SetScheme(scheme string)
+ BuildUrl() string
+ BuildQueries() string
+
+ addHeaderParam(key, value string)
+ addQueryParam(key, value string)
+ addFormParam(key, value string)
+ addPathParam(key, value string)
+}
+
+// base class
+type baseRequest struct {
+ Scheme string
+ Method string
+ Domain string
+ Port string
+ RegionId string
+
+ userAgent map[string]string
+ product string
+ version string
+
+ actionName string
+
+ AcceptFormat string
+
+ QueryParams map[string]string
+ Headers map[string]string
+ FormParams map[string]string
+ Content []byte
+
+ locationServiceCode string
+ locationEndpointType string
+
+ queries string
+
+ stringToSign string
+}
+
+func (request *baseRequest) GetQueryParams() map[string]string {
+ return request.QueryParams
+}
+
+func (request *baseRequest) GetFormParams() map[string]string {
+ return request.FormParams
+}
+
+func (request *baseRequest) GetContent() []byte {
+ return request.Content
+}
+
+func (request *baseRequest) GetVersion() string {
+ return request.version
+}
+
+func (request *baseRequest) GetActionName() string {
+ return request.actionName
+}
+
+func (request *baseRequest) SetContent(content []byte) {
+ request.Content = content
+}
+
+func (request *baseRequest) GetUserAgent() map[string]string {
+ return request.userAgent
+}
+
+func (request *baseRequest) AppendUserAgent(key, value string) {
+ newkey := true
+ if request.userAgent == nil {
+ request.userAgent = make(map[string]string)
+ }
+ if strings.ToLower(key) != "core" && strings.ToLower(key) != "go" {
+ for tag, _ := range request.userAgent {
+ if tag == key {
+ request.userAgent[tag] = value
+ newkey = false
+ }
+ }
+ if newkey {
+ request.userAgent[key] = value
+ }
+ }
+}
+
+func (request *baseRequest) addHeaderParam(key, value string) {
+ request.Headers[key] = value
+}
+
+func (request *baseRequest) addQueryParam(key, value string) {
+ request.QueryParams[key] = value
+}
+
+func (request *baseRequest) addFormParam(key, value string) {
+ request.FormParams[key] = value
+}
+
+func (request *baseRequest) GetAcceptFormat() string {
+ return request.AcceptFormat
+}
+
+func (request *baseRequest) GetLocationServiceCode() string {
+ return request.locationServiceCode
+}
+
+func (request *baseRequest) GetLocationEndpointType() string {
+ return request.locationEndpointType
+}
+
+func (request *baseRequest) GetProduct() string {
+ return request.product
+}
+
+func (request *baseRequest) GetScheme() string {
+ return request.Scheme
+}
+
+func (request *baseRequest) SetScheme(scheme string) {
+ request.Scheme = scheme
+}
+
+func (request *baseRequest) GetMethod() string {
+ return request.Method
+}
+
+func (request *baseRequest) GetDomain() string {
+ return request.Domain
+}
+
+func (request *baseRequest) SetDomain(host string) {
+ request.Domain = host
+}
+
+func (request *baseRequest) GetPort() string {
+ return request.Port
+}
+
+func (request *baseRequest) GetRegionId() string {
+ return request.RegionId
+}
+
+func (request *baseRequest) GetHeaders() map[string]string {
+ return request.Headers
+}
+
+func (request *baseRequest) SetContentType(contentType string) {
+ request.addHeaderParam("Content-Type", contentType)
+}
+
+func (request *baseRequest) GetContentType() (contentType string, contains bool) {
+ contentType, contains = request.Headers["Content-Type"]
+ return
+}
+
+func (request *baseRequest) SetStringToSign(stringToSign string) {
+ request.stringToSign = stringToSign
+}
+
+func (request *baseRequest) GetStringToSign() string {
+ return request.stringToSign
+}
+
+func defaultBaseRequest() (request *baseRequest) {
+ request = &baseRequest{
+ Scheme: "",
+ AcceptFormat: "JSON",
+ Method: GET,
+ QueryParams: make(map[string]string),
+ Headers: map[string]string{
+ "x-sdk-client": "golang/1.0.0",
+ "x-sdk-invoke-type": "normal",
+ "Accept-Encoding": "identity",
+ },
+ FormParams: make(map[string]string),
+ }
+ return
+}
+
+func InitParams(request AcsRequest) (err error) {
+ requestValue := reflect.ValueOf(request).Elem()
+ err = flatRepeatedList(requestValue, request, "", "")
+ return
+}
+
+func flatRepeatedList(dataValue reflect.Value, request AcsRequest, position, prefix string) (err error) {
+ dataType := dataValue.Type()
+ for i := 0; i < dataType.NumField(); i++ {
+ field := dataType.Field(i)
+ name, containsNameTag := field.Tag.Lookup("name")
+ fieldPosition := position
+ if fieldPosition == "" {
+ fieldPosition, _ = field.Tag.Lookup("position")
+ }
+ typeTag, containsTypeTag := field.Tag.Lookup("type")
+ if containsNameTag {
+ if !containsTypeTag {
+ // simple param
+ key := prefix + name
+ value := dataValue.Field(i).String()
+ err = addParam(request, fieldPosition, key, value)
+ if err != nil {
+ return
+ }
+ } else if typeTag == "Repeated" {
+ // repeated param
+ repeatedFieldValue := dataValue.Field(i)
+ if repeatedFieldValue.Kind() != reflect.Slice {
+ // possible value: {"[]string", "*[]struct"}, we must call Elem() in the last condition
+ repeatedFieldValue = repeatedFieldValue.Elem()
+ }
+ if repeatedFieldValue.IsValid() && !repeatedFieldValue.IsNil() {
+ for m := 0; m < repeatedFieldValue.Len(); m++ {
+ elementValue := repeatedFieldValue.Index(m)
+ key := prefix + name + "." + strconv.Itoa(m+1)
+ if elementValue.Type().String() == "string" {
+ value := elementValue.String()
+ err = addParam(request, fieldPosition, key, value)
+ if err != nil {
+ return
+ }
+ } else {
+ err = flatRepeatedList(elementValue, request, fieldPosition, key+".")
+ if err != nil {
+ return
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return
+}
+
+func addParam(request AcsRequest, position, name, value string) (err error) {
+ if len(value) > 0 {
+ switch position {
+ case Header:
+ request.addHeaderParam(name, value)
+ case Query:
+ request.addQueryParam(name, value)
+ case Path:
+ request.addPathParam(name, value)
+ case Body:
+ request.addFormParam(name, value)
+ default:
+ errMsg := fmt.Sprintf(errors.UnsupportedParamPositionErrorMessage, position)
+ err = errors.NewClientError(errors.UnsupportedParamPositionErrorCode, errMsg, nil)
+ }
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/acs_request_test.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/acs_request_test.go
new file mode 100644
index 000000000..aeb9b8672
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/acs_request_test.go
@@ -0,0 +1,148 @@
+package requests
+
+import (
+ "bytes"
+ "io"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_AcsRequest(t *testing.T) {
+ r := defaultBaseRequest()
+ assert.NotNil(t, r)
+
+ // query params
+ query := r.GetQueryParams()
+ assert.Equal(t, 0, len(query))
+ r.addQueryParam("key", "value")
+ assert.Equal(t, 1, len(query))
+ assert.Equal(t, "value", query["key"])
+
+ // form params
+ form := r.GetFormParams()
+ assert.Equal(t, 0, len(form))
+ r.addFormParam("key", "value")
+ assert.Equal(t, 1, len(form))
+ assert.Equal(t, "value", form["key"])
+
+ // getter/setter for stringtosign
+ assert.Equal(t, "", r.GetStringToSign())
+ r.SetStringToSign("s2s")
+ assert.Equal(t, "s2s", r.GetStringToSign())
+
+ // content type
+ _, contains := r.GetContentType()
+ assert.False(t, contains)
+ r.SetContentType("application/json")
+ ct, contains := r.GetContentType()
+ assert.Equal(t, "application/json", ct)
+ assert.True(t, contains)
+
+ // default 3 headers & content-type
+ headers := r.GetHeaders()
+ assert.Equal(t, 4, len(headers))
+ r.addHeaderParam("x-key", "x-key-value")
+ assert.Equal(t, 5, len(headers))
+ assert.Equal(t, "x-key-value", headers["x-key"])
+
+ // GetVersion
+ assert.Equal(t, "", r.GetVersion())
+ // GetActionName
+ assert.Equal(t, "", r.GetActionName())
+
+ // GetMethod
+ assert.Equal(t, "GET", r.GetMethod())
+ r.Method = "POST"
+ assert.Equal(t, "POST", r.GetMethod())
+
+ // Domain
+ assert.Equal(t, "", r.GetDomain())
+ r.SetDomain("ecs.aliyuncs.com")
+ assert.Equal(t, "ecs.aliyuncs.com", r.GetDomain())
+
+ // Region
+ assert.Equal(t, "", r.GetRegionId())
+ r.RegionId = "cn-hangzhou"
+ assert.Equal(t, "cn-hangzhou", r.GetRegionId())
+
+ // AcceptFormat
+ assert.Equal(t, "JSON", r.GetAcceptFormat())
+ r.AcceptFormat = "XML"
+ assert.Equal(t, "XML", r.GetAcceptFormat())
+
+ // GetLocationServiceCode
+ assert.Equal(t, "", r.GetLocationServiceCode())
+
+ // GetLocationEndpointType
+ assert.Equal(t, "", r.GetLocationEndpointType())
+
+ // GetProduct
+ assert.Equal(t, "", r.GetProduct())
+
+ // GetScheme
+ assert.Equal(t, "", r.GetScheme())
+ r.SetScheme("HTTPS")
+ assert.Equal(t, "HTTPS", r.GetScheme())
+
+ // GetPort
+ assert.Equal(t, "", r.GetPort())
+
+ // GetUserAgent
+ r.AppendUserAgent("cli", "1.01")
+ assert.Equal(t, "1.01", r.GetUserAgent()["cli"])
+ // Content
+ assert.Equal(t, []byte(nil), r.GetContent())
+ r.SetContent([]byte("The Content"))
+ assert.True(t, bytes.Equal([]byte("The Content"), r.GetContent()))
+}
+
+type AcsRequestTest struct {
+ *baseRequest
+ Ontology AcsRequest
+ Query string `position:"Query" name:"Query"`
+ Header string `position:"Header" name:"Header"`
+ Path string `position:"Path" name:"Path"`
+ Body string `position:"Body" name:"Body"`
+ TypeAcs *[]string `position:"type" name:"type" type:"Repeated"`
+}
+
+func (r AcsRequestTest) BuildQueries() string {
+ return ""
+}
+
+func (r AcsRequestTest) BuildUrl() string {
+ return ""
+}
+
+func (r AcsRequestTest) GetBodyReader() io.Reader {
+ return nil
+}
+
+func (r AcsRequestTest) GetStyle() string {
+ return ""
+}
+
+func (r AcsRequestTest) addPathParam(key, value string) {
+ return
+}
+
+func Test_AcsRequest_InitParams(t *testing.T) {
+ r := &AcsRequestTest{
+ baseRequest: defaultBaseRequest(),
+ Query: "query value",
+ Header: "header value",
+ Path: "path value",
+ Body: "body value",
+ }
+ tmp := []string{r.Query, r.Header}
+ r.TypeAcs = &tmp
+ r.addQueryParam("qkey", "qvalue")
+ InitParams(r)
+
+ queries := r.GetQueryParams()
+ assert.Equal(t, "query value", queries["Query"])
+ headers := r.GetHeaders()
+ assert.Equal(t, "header value", headers["Header"])
+ // TODO: check the body & path
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/common_request.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/common_request.go
new file mode 100644
index 000000000..1fbfee1d7
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/common_request.go
@@ -0,0 +1,106 @@
+package requests
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "sort"
+ "strings"
+)
+
+type CommonRequest struct {
+ *baseRequest
+
+ Version string
+ ApiName string
+ Product string
+
+ // roa params
+ PathPattern string
+ PathParams map[string]string
+
+ Ontology AcsRequest
+}
+
+func NewCommonRequest() (request *CommonRequest) {
+ request = &CommonRequest{
+ baseRequest: defaultBaseRequest(),
+ }
+ request.Headers["x-sdk-invoke-type"] = "common"
+ request.PathParams = make(map[string]string)
+ return
+}
+
+func (request *CommonRequest) String() string {
+ request.TransToAcsRequest()
+
+ resultBuilder := bytes.Buffer{}
+
+ mapOutput := func(m map[string]string) {
+ if len(m) > 0 {
+ sortedKeys := make([]string, 0)
+ for k := range m {
+ sortedKeys = append(sortedKeys, k)
+ }
+
+ // sort 'string' key in increasing order
+ sort.Strings(sortedKeys)
+
+ for _, key := range sortedKeys {
+ resultBuilder.WriteString(key + ": " + m[key] + "\n")
+ }
+ }
+ }
+
+ // Request Line
+ resultBuilder.WriteString(fmt.Sprintf("%s %s %s/1.1\n", request.Method, request.BuildQueries(), strings.ToUpper(request.Scheme)))
+
+ // Headers
+ resultBuilder.WriteString("Host" + ": " + request.Domain + "\n")
+ mapOutput(request.Headers)
+
+ resultBuilder.WriteString("\n")
+ // Body
+ if len(request.Content) > 0 {
+ resultBuilder.WriteString(string(request.Content) + "\n")
+ } else {
+ mapOutput(request.FormParams)
+ }
+
+ return resultBuilder.String()
+}
+
+func (request *CommonRequest) TransToAcsRequest() {
+ if len(request.PathPattern) > 0 {
+ roaRequest := &RoaRequest{}
+ roaRequest.initWithCommonRequest(request)
+ request.Ontology = roaRequest
+ } else {
+ rpcRequest := &RpcRequest{}
+ rpcRequest.baseRequest = request.baseRequest
+ rpcRequest.product = request.Product
+ rpcRequest.version = request.Version
+ rpcRequest.actionName = request.ApiName
+ request.Ontology = rpcRequest
+ }
+}
+
+func (request *CommonRequest) BuildUrl() string {
+ return request.Ontology.BuildUrl()
+}
+
+func (request *CommonRequest) BuildQueries() string {
+ return request.Ontology.BuildQueries()
+}
+
+func (request *CommonRequest) GetBodyReader() io.Reader {
+ return request.Ontology.GetBodyReader()
+}
+
+func (request *CommonRequest) GetStyle() string {
+ return request.Ontology.GetStyle()
+}
+
+func (request *CommonRequest) addPathParam(key, value string) {
+ request.PathParams[key] = value
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/common_request_test.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/common_request_test.go
new file mode 100644
index 000000000..7d3a13c78
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/common_request_test.go
@@ -0,0 +1,82 @@
+package requests
+
+import (
+ "io/ioutil"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_NewCommonRequest(t *testing.T) {
+ r := NewCommonRequest()
+ assert.NotNil(t, r)
+
+ assert.Equal(t, "common", r.GetHeaders()["x-sdk-invoke-type"])
+ assert.Equal(t, 0, len(r.PathParams))
+
+ r.addPathParam("name", "value")
+ assert.Equal(t, "value", r.PathParams["name"])
+}
+
+func Test_CommonRequest_TransToAcsRequest(t *testing.T) {
+ r := NewCommonRequest()
+ assert.NotNil(t, r)
+ r.TransToAcsRequest()
+
+ assert.Equal(t, "RPC", r.GetStyle())
+
+ r2 := NewCommonRequest()
+ assert.NotNil(t, r2)
+ r2.PathPattern = "/users/[user]"
+ r2.TransToAcsRequest()
+
+ assert.Equal(t, "ROA", r2.GetStyle())
+}
+
+func Test_CommonRequest_String(t *testing.T) {
+ r := NewCommonRequest()
+ assert.NotNil(t, r)
+ r.SetDomain("domain")
+
+ expected := `GET /? /1.1
+Host: domain
+Accept-Encoding: identity
+x-sdk-client: golang/1.0.0
+x-sdk-invoke-type: common
+
+`
+ assert.Equal(t, expected, r.String())
+
+ r.SetContent([]byte("content"))
+
+ expected = `GET /? /1.1
+Host: domain
+Accept-Encoding: identity
+x-sdk-client: golang/1.0.0
+x-sdk-invoke-type: common
+
+content
+`
+ assert.Equal(t, expected, r.String())
+}
+
+func Test_CommonRequest_BuildUrl(t *testing.T) {
+ r := NewCommonRequest()
+ assert.NotNil(t, r)
+ r.SetDomain("host")
+ r.SetScheme("http")
+
+ r.TransToAcsRequest()
+
+ assert.Equal(t, "http://host/?", r.BuildUrl())
+ r.Port = "8080"
+ assert.Equal(t, "http://host:8080/?", r.BuildUrl())
+}
+
+func Test_CommonRequest_GetBodyReader(t *testing.T) {
+ r := NewCommonRequest()
+ r.TransToAcsRequest()
+ reader := r.GetBodyReader()
+ b, _ := ioutil.ReadAll(reader)
+ assert.Equal(t, "", string(b))
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/roa_request.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/roa_request.go
new file mode 100644
index 000000000..d03cbfa31
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/roa_request.go
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+
+package requests
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "net/url"
+ "sort"
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+type RoaRequest struct {
+ *baseRequest
+ pathPattern string
+ PathParams map[string]string
+}
+
+func (*RoaRequest) GetStyle() string {
+ return ROA
+}
+
+func (request *RoaRequest) GetBodyReader() io.Reader {
+ if request.FormParams != nil && len(request.FormParams) > 0 {
+ formString := utils.GetUrlFormedMap(request.FormParams)
+ return strings.NewReader(formString)
+ } else if len(request.Content) > 0 {
+ return bytes.NewReader(request.Content)
+ } else {
+ return nil
+ }
+}
+
+// for sign method, need not url encoded
+func (request *RoaRequest) BuildQueries() string {
+ return request.buildQueries()
+}
+
+func (request *RoaRequest) buildPath() string {
+ path := request.pathPattern
+ for key, value := range request.PathParams {
+ path = strings.Replace(path, "["+key+"]", value, 1)
+ }
+ return path
+}
+
+func (request *RoaRequest) buildQueries() string {
+ // replace path params with value
+ path := request.buildPath()
+ queryParams := request.QueryParams
+ // sort QueryParams by key
+ var queryKeys []string
+ for key := range queryParams {
+ queryKeys = append(queryKeys, key)
+ }
+ sort.Strings(queryKeys)
+
+ // append urlBuilder
+ urlBuilder := bytes.Buffer{}
+ urlBuilder.WriteString(path)
+ if len(queryKeys) > 0 {
+ urlBuilder.WriteString("?")
+ }
+ for i := 0; i < len(queryKeys); i++ {
+ queryKey := queryKeys[i]
+ urlBuilder.WriteString(queryKey)
+ if value := queryParams[queryKey]; len(value) > 0 {
+ urlBuilder.WriteString("=")
+ urlBuilder.WriteString(value)
+ }
+ if i < len(queryKeys)-1 {
+ urlBuilder.WriteString("&")
+ }
+ }
+ result := urlBuilder.String()
+ result = popStandardUrlencode(result)
+ return result
+}
+
+func (request *RoaRequest) buildQueryString() string {
+ queryParams := request.QueryParams
+ // sort QueryParams by key
+ q := url.Values{}
+ for key, value := range queryParams {
+ q.Add(key, value)
+ }
+ return q.Encode()
+}
+
+func popStandardUrlencode(stringToSign string) (result string) {
+ result = strings.Replace(stringToSign, "+", "%20", -1)
+ result = strings.Replace(result, "*", "%2A", -1)
+ result = strings.Replace(result, "%7E", "~", -1)
+ return
+}
+
+func (request *RoaRequest) BuildUrl() string {
+ // for network trans, need url encoded
+ scheme := strings.ToLower(request.Scheme)
+ domain := request.Domain
+ port := request.Port
+ path := request.buildPath()
+ url := fmt.Sprintf("%s://%s:%s%s", scheme, domain, port, path)
+ querystring := request.buildQueryString()
+ if len(querystring) > 0 {
+ url = fmt.Sprintf("%s?%s", url, querystring)
+ }
+ return url
+}
+
+func (request *RoaRequest) addPathParam(key, value string) {
+ request.PathParams[key] = value
+}
+
+func (request *RoaRequest) InitWithApiInfo(product, version, action, uriPattern, serviceCode, endpointType string) {
+ request.baseRequest = defaultBaseRequest()
+ request.PathParams = make(map[string]string)
+ request.Headers["x-acs-version"] = version
+ request.pathPattern = uriPattern
+ request.locationServiceCode = serviceCode
+ request.locationEndpointType = endpointType
+ //request.product = product
+ //request.version = version
+ //request.actionName = action
+}
+
+func (request *RoaRequest) initWithCommonRequest(commonRequest *CommonRequest) {
+ request.baseRequest = commonRequest.baseRequest
+ request.PathParams = commonRequest.PathParams
+ //request.product = commonRequest.Product
+ //request.version = commonRequest.Version
+ request.Headers["x-acs-version"] = commonRequest.Version
+ //request.actionName = commonRequest.ApiName
+ request.pathPattern = commonRequest.PathPattern
+ request.locationServiceCode = ""
+ request.locationEndpointType = ""
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/roa_request_test.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/roa_request_test.go
new file mode 100644
index 000000000..5ee21f83b
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/roa_request_test.go
@@ -0,0 +1,116 @@
+package requests
+
+import (
+ "io/ioutil"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_RoaRequest(t *testing.T) {
+ r := &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+ assert.NotNil(t, r)
+
+ assert.Equal(t, "GET", r.GetMethod())
+ assert.Equal(t, "ROA", r.GetStyle())
+ // assert.Equal(t, "version", r.GetVersion())
+ // assert.Equal(t, "action", r.GetActionName())
+ assert.Equal(t, "serviceCode", r.GetLocationServiceCode())
+ assert.Equal(t, "endpointType", r.GetLocationEndpointType())
+}
+
+func Test_RoaRequest_initWithCommonRequest(t *testing.T) {
+ r := &RoaRequest{}
+ common := NewCommonRequest()
+ r.initWithCommonRequest(common)
+ assert.NotNil(t, r)
+
+ assert.Equal(t, "GET", r.GetMethod())
+ assert.Equal(t, "ROA", r.GetStyle())
+ assert.Equal(t, "common", r.Headers["x-sdk-invoke-type"])
+ // assert.Equal(t, "version", r.GetVersion())
+ // assert.Equal(t, "action", r.GetActionName())
+}
+
+func Test_RoaRequest_BuildQueries(t *testing.T) {
+ // url
+ r := &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+ assert.Equal(t, "/", r.BuildQueries())
+ r.addQueryParam("key", "value")
+ assert.Equal(t, "/?key=value", r.BuildQueries())
+ r.addQueryParam("key2", "value2")
+ assert.Equal(t, "/?key=value&key2=value2", r.BuildQueries())
+ // assert.Equal(t, "/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildQueries())
+}
+
+func Test_RoaRequest_BuildUrl(t *testing.T) {
+ r := &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+ r.Domain = "domain.com"
+ r.Scheme = "http"
+ r.Port = "80"
+ assert.Equal(t, "http://domain.com:80/", r.BuildUrl())
+ r.addQueryParam("key", "value")
+ assert.Equal(t, "http://domain.com:80/?key=value", r.BuildUrl())
+ r.addQueryParam("key", "https://domain/?q=v")
+ assert.Equal(t, "http://domain.com:80/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildUrl())
+ r.addQueryParam("url", "https://domain/?q1=v1&q2=v2")
+ assert.Equal(t, "http://domain.com:80/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv&url=https%3A%2F%2Fdomain%2F%3Fq1%3Dv1%26q2%3Dv2", r.BuildUrl())
+}
+
+func Test_RoaRequest_BuildUrl2(t *testing.T) {
+ r := &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+ r.Domain = "domain.com"
+ r.Scheme = "http"
+ r.Port = "80"
+ assert.Equal(t, "http://domain.com:80/", r.BuildUrl())
+ r.addPathParam("key", "value")
+ assert.Equal(t, "http://domain.com:80/", r.BuildUrl())
+
+ r = &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/users/[user]", "serviceCode", "endpointType")
+ r.Domain = "domain.com"
+ r.Scheme = "http"
+ r.Port = "80"
+ r.addPathParam("user", "name")
+ assert.Equal(t, "http://domain.com:80/users/name", r.BuildUrl())
+ r.addQueryParam("key", "value")
+ assert.Equal(t, "http://domain.com:80/users/name?key=value", r.BuildUrl())
+}
+
+func Test_RoaRequest_GetBodyReader_Nil(t *testing.T) {
+ r := &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+
+ reader := r.GetBodyReader()
+ assert.Nil(t, reader)
+}
+
+func Test_RoaRequest_GetBodyReader_Form(t *testing.T) {
+ r := &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+
+ r.addFormParam("key", "value")
+ reader := r.GetBodyReader()
+ b, _ := ioutil.ReadAll(reader)
+ assert.Equal(t, "key=value", string(b))
+}
+
+func Test_RoaRequest_GetBodyReader_Content(t *testing.T) {
+ r := &RoaRequest{}
+ r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+
+ r.SetContent([]byte("Hello world"))
+ reader := r.GetBodyReader()
+ b, _ := ioutil.ReadAll(reader)
+ assert.Equal(t, "Hello world", string(b))
+}
+
+// func Test_RoaRequest_addPathParam(t *testing.T) {
+// r := &RoaRequest{}
+// r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
+// r.addPathParam("key", "value")
+// }
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/rpc_request.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/rpc_request.go
new file mode 100644
index 000000000..01be6fd04
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/rpc_request.go
@@ -0,0 +1,79 @@
+/*
+ * 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.
+ */
+
+package requests
+
+import (
+ "fmt"
+ "io"
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
+)
+
+type RpcRequest struct {
+ *baseRequest
+}
+
+func (request *RpcRequest) init() {
+ request.baseRequest = defaultBaseRequest()
+ request.Method = POST
+}
+
+func (*RpcRequest) GetStyle() string {
+ return RPC
+}
+
+func (request *RpcRequest) GetBodyReader() io.Reader {
+ if request.FormParams != nil && len(request.FormParams) > 0 {
+ formString := utils.GetUrlFormedMap(request.FormParams)
+ return strings.NewReader(formString)
+ } else {
+ return strings.NewReader("")
+ }
+}
+
+func (request *RpcRequest) BuildQueries() string {
+ request.queries = "/?" + utils.GetUrlFormedMap(request.QueryParams)
+ return request.queries
+}
+
+func (request *RpcRequest) BuildUrl() string {
+ url := fmt.Sprintf("%s://%s", strings.ToLower(request.Scheme), request.Domain)
+ if len(request.Port) > 0 {
+ url = fmt.Sprintf("%s:%s", url, request.Port)
+ }
+ return url + request.BuildQueries()
+}
+
+func (request *RpcRequest) GetVersion() string {
+ return request.version
+}
+
+func (request *RpcRequest) GetActionName() string {
+ return request.actionName
+}
+
+func (request *RpcRequest) addPathParam(key, value string) {
+ panic("not support")
+}
+
+func (request *RpcRequest) InitWithApiInfo(product, version, action, serviceCode, endpointType string) {
+ request.init()
+ request.product = product
+ request.version = version
+ request.actionName = action
+ request.locationServiceCode = serviceCode
+ request.locationEndpointType = endpointType
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/rpc_request_test.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/rpc_request_test.go
new file mode 100644
index 000000000..33ac0a0aa
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/rpc_request_test.go
@@ -0,0 +1,70 @@
+package requests
+
+import (
+ "io/ioutil"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_RpcRequest(t *testing.T) {
+ r := &RpcRequest{}
+ r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
+ assert.NotNil(t, r)
+
+ assert.Equal(t, "POST", r.GetMethod())
+ assert.Equal(t, "RPC", r.GetStyle())
+ assert.Equal(t, "product", r.GetProduct())
+ assert.Equal(t, "version", r.GetVersion())
+ assert.Equal(t, "action", r.GetActionName())
+ assert.Equal(t, "serviceCode", r.GetLocationServiceCode())
+ assert.Equal(t, "endpointType", r.GetLocationEndpointType())
+}
+
+func Test_RpcRequest_BuildQueries(t *testing.T) {
+ // url
+ r := &RpcRequest{}
+ r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
+ assert.Equal(t, "/?", r.BuildQueries())
+ r.addQueryParam("key", "value")
+ assert.Equal(t, "/?key=value", r.BuildQueries())
+ r.addQueryParam("key", "https://domain/?q=v")
+ assert.Equal(t, "/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildQueries())
+}
+
+func Test_RpcRequest_BuildUrl(t *testing.T) {
+ r := &RpcRequest{}
+ r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
+ r.Domain = "domain.com"
+ r.Scheme = "http"
+ r.Port = "80"
+ assert.Equal(t, "http://domain.com:80/?", r.BuildUrl())
+ r.addQueryParam("key", "value")
+ assert.Equal(t, "http://domain.com:80/?key=value", r.BuildUrl())
+ r.addQueryParam("key", "https://domain/?q=v")
+ assert.Equal(t, "http://domain.com:80/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildUrl())
+}
+
+func Test_RpcRequest_GetBodyReader(t *testing.T) {
+ r := &RpcRequest{}
+ r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
+
+ reader := r.GetBodyReader()
+ b, _ := ioutil.ReadAll(reader)
+ assert.Equal(t, "", string(b))
+ r.addFormParam("key", "value")
+ reader = r.GetBodyReader()
+ b, _ = ioutil.ReadAll(reader)
+ assert.Equal(t, "key=value", string(b))
+}
+
+func Test_RpcRequest_addPathParam(t *testing.T) {
+ defer func() { //进行异常捕捉
+ err := recover()
+ assert.NotNil(t, err)
+ assert.Equal(t, "not support", err)
+ }()
+ r := &RpcRequest{}
+ r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
+ r.addPathParam("key", "value")
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/types.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/types.go
new file mode 100644
index 000000000..28af63ea1
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/types.go
@@ -0,0 +1,53 @@
+package requests
+
+import "strconv"
+
+type Integer string
+
+func NewInteger(integer int) Integer {
+ return Integer(strconv.Itoa(integer))
+}
+
+func (integer Integer) HasValue() bool {
+ return integer != ""
+}
+
+func (integer Integer) GetValue() (int, error) {
+ return strconv.Atoi(string(integer))
+}
+
+func NewInteger64(integer int64) Integer {
+ return Integer(strconv.FormatInt(integer, 10))
+}
+
+func (integer Integer) GetValue64() (int64, error) {
+ return strconv.ParseInt(string(integer), 10, 0)
+}
+
+type Boolean string
+
+func NewBoolean(bool bool) Boolean {
+ return Boolean(strconv.FormatBool(bool))
+}
+
+func (boolean Boolean) HasValue() bool {
+ return boolean != ""
+}
+
+func (boolean Boolean) GetValue() (bool, error) {
+ return strconv.ParseBool(string(boolean))
+}
+
+type Float string
+
+func NewFloat(f float64) Float {
+ return Float(strconv.FormatFloat(f, 'f', 6, 64))
+}
+
+func (float Float) HasValue() bool {
+ return float != ""
+}
+
+func (float Float) GetValue() (float64, error) {
+ return strconv.ParseFloat(string(float), 64)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/types_test.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/types_test.go
new file mode 100644
index 000000000..0f0f05f26
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests/types_test.go
@@ -0,0 +1,51 @@
+package requests
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestNewInteger(t *testing.T) {
+ integer := NewInteger(123123)
+ assert.True(t, integer.HasValue())
+ value, err := integer.GetValue()
+ assert.Nil(t, err)
+ assert.Equal(t, 123123, value)
+ var expected Integer
+ expected = "123123"
+ assert.Equal(t, expected, integer)
+}
+
+func TestNewInteger64(t *testing.T) {
+ long := NewInteger64(123123123123123123)
+ assert.True(t, long.HasValue())
+ value, err := long.GetValue64()
+ assert.Nil(t, err)
+ assert.Equal(t, int64(123123123123123123), value)
+ var expected Integer
+ expected = "123123123123123123"
+ assert.Equal(t, expected, long)
+}
+
+func TestNewBoolean(t *testing.T) {
+ boolean := NewBoolean(false)
+ assert.True(t, boolean.HasValue())
+ value, err := boolean.GetValue()
+ assert.Nil(t, err)
+ assert.Equal(t, false, value)
+ var expected Boolean
+ expected = "false"
+ assert.Equal(t, expected, boolean)
+}
+
+func TestNewFloat(t *testing.T) {
+ float := NewFloat(123123.123123)
+ assert.True(t, float.HasValue())
+ value, err := float.GetValue()
+ assert.Nil(t, err)
+ assert.Equal(t, 123123.123123, value)
+ var expected Float
+ expected = "123123.123123"
+ assert.Equal(t, expected, float)
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/resource/tzdata.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/resource/tzdata.go
new file mode 100644
index 000000000..58f353988
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/resource/tzdata.go
@@ -0,0 +1,6 @@
+package resource
+
+func GetTZData(name string) ([]byte, bool) {
+ data, ok := files["zoneinfo/"+name]
+ return data, ok
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/resource/zoneinfo.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/resource/zoneinfo.go
new file mode 100644
index 000000000..e0fe9d39b
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/resource/zoneinfo.go
@@ -0,0 +1,1190 @@
+package resource
+
+var fileNames = []string{"zoneinfo/Africa/Abidjan", "zoneinfo/Africa/Accra", "zoneinfo/Africa/Addis_Ababa", "zoneinfo/Africa/Algiers", "zoneinfo/Africa/Asmara", "zoneinfo/Africa/Asmera", "zoneinfo/Africa/Bamako", "zoneinfo/Africa/Bangui", "zoneinfo/Africa/Banjul", "zoneinfo/Africa/Bissau", "zoneinfo/Africa/Blantyre", "zoneinfo/Africa/Brazzaville", "zoneinfo/Africa/Bujumbura", "zoneinfo/Africa/Cairo", "zoneinfo/Africa/Casablanca", "zoneinfo/Africa/Ceuta", "zoneinfo/Africa/Conakry", "zoneinfo/Africa/Dakar", "zoneinfo/Africa/Dar_es_Salaam", "zoneinfo/Africa/Djibouti", "zoneinfo/Africa/Douala", "zoneinfo/Africa/El_Aaiun", "zoneinfo/Africa/Freetown", "zoneinfo/Africa/Gaborone", "zoneinfo/Africa/Harare", "zoneinfo/Africa/Johannesburg", "zoneinfo/Africa/Juba", "zoneinfo/Africa/Kampala", "zoneinfo/Africa/Khartoum", "zoneinfo/Africa/Kigali", "zoneinfo/Africa/Kinshasa", "zoneinfo/Africa/Lagos", "zoneinfo/Africa/Libreville", "zoneinfo/Africa/Lome", "zoneinfo/Africa/Luanda", "zoneinfo/Africa/Lubumbashi", "zoneinfo/Africa/Lusaka", "zoneinfo/Africa/Malabo", "zoneinfo/Africa/Maputo", "zoneinfo/Africa/Maseru", "zoneinfo/Africa/Mbabane", "zoneinfo/Africa/Mogadishu", "zoneinfo/Africa/Monrovia", "zoneinfo/Africa/Nairobi", "zoneinfo/Africa/Ndjamena", "zoneinfo/Africa/Niamey", "zoneinfo/Africa/Nouakchott", "zoneinfo/Africa/Ouagadougou", "zoneinfo/Africa/Porto-Novo", "zoneinfo/Africa/Sao_Tome", "zoneinfo/Africa/Timbuktu", "zoneinfo/Africa/Tripoli", "zoneinfo/Africa/Tunis", "zoneinfo/Africa/Windhoek", "zoneinfo/America/Adak", "zoneinfo/America/Anchorage", "zoneinfo/America/Anguilla", "zoneinfo/America/Antigua", "zoneinfo/America/Araguaina", "zoneinfo/America/Argentina/Buenos_Aires", "zoneinfo/America/Argentina/Catamarca", "zoneinfo/America/Argentina/ComodRivadavia", "zoneinfo/America/Argentina/Cordoba", "zoneinfo/America/Argentina/Jujuy", "zoneinfo/America/Argentina/La_Rioja", "zoneinfo/America/Argentina/Mendoza", "zoneinfo/America/Argentina/Rio_Gallegos", "zoneinfo/America/Argentina/Salta", "zoneinfo/America/Argentina/San_Juan", "zoneinfo/America/Argentina/San_Luis", "zoneinfo/America/Argentina/Tucuman", "zoneinfo/America/Argentina/Ushuaia", "zoneinfo/America/Aruba", "zoneinfo/America/Asuncion", "zoneinfo/America/Atikokan", "zoneinfo/America/Atka", "zoneinfo/America/Bahia", "zoneinfo/America/Bahia_Banderas", "zoneinfo/America/Barbados", "zoneinfo/America/Belem", "zoneinfo/America/Belize", "zoneinfo/America/Blanc-Sablon", "zoneinfo/America/Boa_Vista", "zoneinfo/America/Bogota", "zoneinfo/America/Boise", "zoneinfo/America/Buenos_Aires", "zoneinfo/America/Cambridge_Bay", "zoneinfo/America/Campo_Grande", "zoneinfo/America/Cancun", "zoneinfo/America/Caracas", "zoneinfo/America/Catamarca", "zoneinfo/America/Cayenne", "zoneinfo/America/Cayman", "zoneinfo/America/Chicago", "zoneinfo/America/Chihuahua", "zoneinfo/America/Coral_Harbour", "zoneinfo/America/Cordoba", "zoneinfo/America/Costa_Rica", "zoneinfo/America/Creston", "zoneinfo/America/Cuiaba", "zoneinfo/America/Curacao", "zoneinfo/America/Danmarkshavn", "zoneinfo/America/Dawson", "zoneinfo/America/Dawson_Creek", "zoneinfo/America/Denver", "zoneinfo/America/Detroit", "zoneinfo/America/Dominica", "zoneinfo/America/Edmonton", "zoneinfo/America/Eirunepe", "zoneinfo/America/El_Salvador", "zoneinfo/America/Ensenada", "zoneinfo/America/Fort_Nelson", "zoneinfo/America/Fort_Wayne", "zoneinfo/America/Fortaleza", "zoneinfo/America/Glace_Bay", "zoneinfo/America/Godthab", "zoneinfo/America/Goose_Bay", "zoneinfo/America/Grand_Turk", "zoneinfo/America/Grenada", "zoneinfo/America/Guadeloupe", "zoneinfo/America/Guatemala", "zoneinfo/America/Guayaquil", "zoneinfo/America/Guyana", "zoneinfo/America/Halifax", "zoneinfo/America/Havana", "zoneinfo/America/Hermosillo", "zoneinfo/America/Indiana/Indianapolis", "zoneinfo/America/Indiana/Knox", "zoneinfo/America/Indiana/Marengo", "zoneinfo/America/Indiana/Petersburg", "zoneinfo/America/Indiana/Tell_City", "zoneinfo/America/Indiana/Vevay", "zoneinfo/America/Indiana/Vincennes", "zoneinfo/America/Indiana/Winamac", "zoneinfo/America/Indianapolis", "zoneinfo/America/Inuvik", "zoneinfo/America/Iqaluit", "zoneinfo/America/Jamaica", "zoneinfo/America/Jujuy", "zoneinfo/America/Juneau", "zoneinfo/America/Kentucky/Louisville", "zoneinfo/America/Kentucky/Monticello", "zoneinfo/America/Knox_IN", "zoneinfo/America/Kralendijk", "zoneinfo/America/La_Paz", "zoneinfo/America/Lima", "zoneinfo/America/Los_Angeles", "zoneinfo/America/Louisville", "zoneinfo/America/Lower_Princes", "zoneinfo/America/Maceio", "zoneinfo/America/Managua", "zoneinfo/America/Manaus", "zoneinfo/America/Marigot", "zoneinfo/America/Martinique", "zoneinfo/America/Matamoros", "zoneinfo/America/Mazatlan", "zoneinfo/America/Mendoza", "zoneinfo/America/Menominee", "zoneinfo/America/Merida", "zoneinfo/America/Metlakatla", "zoneinfo/America/Mexico_City", "zoneinfo/America/Miquelon", "zoneinfo/America/Moncton", "zoneinfo/America/Monterrey", "zoneinfo/America/Montevideo", "zoneinfo/America/Montreal", "zoneinfo/America/Montserrat", "zoneinfo/America/Nassau", "zoneinfo/America/New_York", "zoneinfo/America/Nipigon", "zoneinfo/America/Nome", "zoneinfo/America/Noronha", "zoneinfo/America/North_Dakota/Beulah", "zoneinfo/America/North_Dakota/Center", "zoneinfo/America/North_Dakota/New_Salem", "zoneinfo/America/Ojinaga", "zoneinfo/America/Panama", "zoneinfo/America/Pangnirtung", "zoneinfo/America/Paramaribo", "zoneinfo/America/Phoenix", "zoneinfo/America/Port-au-Prince", "zoneinfo/America/Port_of_Spain", "zoneinfo/America/Porto_Acre", "zoneinfo/America/Porto_Velho", "zoneinfo/America/Puerto_Rico", "zoneinfo/America/Punta_Arenas", "zoneinfo/America/Rainy_River", "zoneinfo/America/Rankin_Inlet", "zoneinfo/America/Recife", "zoneinfo/America/Regina", "zoneinfo/America/Resolute", "zoneinfo/America/Rio_Branco", "zoneinfo/America/Rosario", "zoneinfo/America/Santa_Isabel", "zoneinfo/America/Santarem", "zoneinfo/America/Santiago", "zoneinfo/America/Santo_Domingo", "zoneinfo/America/Sao_Paulo", "zoneinfo/America/Scoresbysund", "zoneinfo/America/Shiprock", "zoneinfo/America/Sitka", "zoneinfo/America/St_Barthelemy", "zoneinfo/America/St_Johns", "zoneinfo/America/St_Kitts", "zoneinfo/America/St_Lucia", "zoneinfo/America/St_Thomas", "zoneinfo/America/St_Vincent", "zoneinfo/America/Swift_Current", "zoneinfo/America/Tegucigalpa", "zoneinfo/America/Thule", "zoneinfo/America/Thunder_Bay", "zoneinfo/America/Tijuana", "zoneinfo/America/Toronto", "zoneinfo/America/Tortola", "zoneinfo/America/Vancouver", "zoneinfo/America/Virgin", "zoneinfo/America/Whitehorse", "zoneinfo/America/Winnipeg", "zoneinfo/America/Yakutat", "zoneinfo/America/Yellowknife", "zoneinfo/Antarctica/Casey", "zoneinfo/Antarctica/Davis", "zoneinfo/Antarctica/DumontDUrville", "zoneinfo/Antarctica/Macquarie", "zoneinfo/Antarctica/Mawson", "zoneinfo/Antarctica/McMurdo", "zoneinfo/Antarctica/Palmer", "zoneinfo/Antarctica/Rothera", "zoneinfo/Antarctica/South_Pole", "zoneinfo/Antarctica/Syowa", "zoneinfo/Antarctica/Troll", "zoneinfo/Antarctica/Vostok", "zoneinfo/Arctic/Longyearbyen", "zoneinfo/Asia/Aden", "zoneinfo/Asia/Almaty", "zoneinfo/Asia/Amman", "zoneinfo/Asia/Anadyr", "zoneinfo/Asia/Aqtau", "zoneinfo/Asia/Aqtobe", "zoneinfo/Asia/Ashgabat", "zoneinfo/Asia/Ashkhabad", "zoneinfo/Asia/Atyrau", "zoneinfo/Asia/Baghdad", "zoneinfo/Asia/Bahrain", "zoneinfo/Asia/Baku", "zoneinfo/Asia/Bangkok", "zoneinfo/Asia/Barnaul", "zoneinfo/Asia/Beirut", "zoneinfo/Asia/Bishkek", "zoneinfo/Asia/Brunei", "zoneinfo/Asia/Calcutta", "zoneinfo/Asia/Chita", "zoneinfo/Asia/Choibalsan", "zoneinfo/Asia/Chongqing", "zoneinfo/Asia/Chungking", "zoneinfo/Asia/Colombo", "zoneinfo/Asia/Dacca", "zoneinfo/Asia/Damascus", "zoneinfo/Asia/Dhaka", "zoneinfo/Asia/Dili", "zoneinfo/Asia/Dubai", "zoneinfo/Asia/Dushanbe", "zoneinfo/Asia/Famagusta", "zoneinfo/Asia/Gaza", "zoneinfo/Asia/Harbin", "zoneinfo/Asia/Hebron", "zoneinfo/Asia/Ho_Chi_Minh", "zoneinfo/Asia/Hong_Kong", "zoneinfo/Asia/Hovd", "zoneinfo/Asia/Irkutsk", "zoneinfo/Asia/Istanbul", "zoneinfo/Asia/Jakarta", "zoneinfo/Asia/Jayapura", "zoneinfo/Asia/Jerusalem", "zoneinfo/Asia/Kabul", "zoneinfo/Asia/Kamchatka", "zoneinfo/Asia/Karachi", "zoneinfo/Asia/Kashgar", "zoneinfo/Asia/Kathmandu", "zoneinfo/Asia/Katmandu", "zoneinfo/Asia/Khandyga", "zoneinfo/Asia/Kolkata", "zoneinfo/Asia/Krasnoyarsk", "zoneinfo/Asia/Kuala_Lumpur", "zoneinfo/Asia/Kuching", "zoneinfo/Asia/Kuwait", "zoneinfo/Asia/Macao", "zoneinfo/Asia/Macau", "zoneinfo/Asia/Magadan", "zoneinfo/Asia/Makassar", "zoneinfo/Asia/Manila", "zoneinfo/Asia/Muscat", "zoneinfo/Asia/Nicosia", "zoneinfo/Asia/Novokuznetsk", "zoneinfo/Asia/Novosibirsk", "zoneinfo/Asia/Omsk", "zoneinfo/Asia/Oral", "zoneinfo/Asia/Phnom_Penh", "zoneinfo/Asia/Pontianak", "zoneinfo/Asia/Pyongyang", "zoneinfo/Asia/Qatar", "zoneinfo/Asia/Qyzylorda", "zoneinfo/Asia/Rangoon", "zoneinfo/Asia/Riyadh", "zoneinfo/Asia/Saigon", "zoneinfo/Asia/Sakhalin", "zoneinfo/Asia/Samarkand", "zoneinfo/Asia/Seoul", "zoneinfo/Asia/Shanghai", "zoneinfo/Asia/Singapore", "zoneinfo/Asia/Srednekolymsk", "zoneinfo/Asia/Taipei", "zoneinfo/Asia/Tashkent", "zoneinfo/Asia/Tbilisi", "zoneinfo/Asia/Tehran", "zoneinfo/Asia/Tel_Aviv", "zoneinfo/Asia/Thimbu", "zoneinfo/Asia/Thimphu", "zoneinfo/Asia/Tokyo", "zoneinfo/Asia/Tomsk", "zoneinfo/Asia/Ujung_Pandang", "zoneinfo/Asia/Ulaanbaatar", "zoneinfo/Asia/Ulan_Bator", "zoneinfo/Asia/Urumqi", "zoneinfo/Asia/Ust-Nera", "zoneinfo/Asia/Vientiane", "zoneinfo/Asia/Vladivostok", "zoneinfo/Asia/Yakutsk", "zoneinfo/Asia/Yangon", "zoneinfo/Asia/Yekaterinburg", "zoneinfo/Asia/Yerevan", "zoneinfo/Atlantic/Azores", "zoneinfo/Atlantic/Bermuda", "zoneinfo/Atlantic/Canary", "zoneinfo/Atlantic/Cape_Verde", "zoneinfo/Atlantic/Faeroe", "zoneinfo/Atlantic/Faroe", "zoneinfo/Atlantic/Jan_Mayen", "zoneinfo/Atlantic/Madeira", "zoneinfo/Atlantic/Reykjavik", "zoneinfo/Atlantic/South_Georgia", "zoneinfo/Atlantic/St_Helena", "zoneinfo/Atlantic/Stanley", "zoneinfo/Australia/ACT", "zoneinfo/Australia/Adelaide", "zoneinfo/Australia/Brisbane", "zoneinfo/Australia/Broken_Hill", "zoneinfo/Australia/Canberra", "zoneinfo/Australia/Currie", "zoneinfo/Australia/Darwin", "zoneinfo/Australia/Eucla", "zoneinfo/Australia/Hobart", "zoneinfo/Australia/LHI", "zoneinfo/Australia/Lindeman", "zoneinfo/Australia/Lord_Howe", "zoneinfo/Australia/Melbourne", "zoneinfo/Australia/NSW", "zoneinfo/Australia/North", "zoneinfo/Australia/Perth", "zoneinfo/Australia/Queensland", "zoneinfo/Australia/South", "zoneinfo/Australia/Sydney", "zoneinfo/Australia/Tasmania", "zoneinfo/Australia/Victoria", "zoneinfo/Australia/West", "zoneinfo/Australia/Yancowinna", "zoneinfo/Brazil/Acre", "zoneinfo/Brazil/DeNoronha", "zoneinfo/Brazil/East", "zoneinfo/Brazil/West", "zoneinfo/CET", "zoneinfo/CST6CDT", "zoneinfo/Canada/Atlantic", "zoneinfo/Canada/Central", "zoneinfo/Canada/Eastern", "zoneinfo/Canada/Mountain", "zoneinfo/Canada/Newfoundland", "zoneinfo/Canada/Pacific", "zoneinfo/Canada/Saskatchewan", "zoneinfo/Canada/Yukon", "zoneinfo/Chile/Continental", "zoneinfo/Chile/EasterIsland", "zoneinfo/Cuba", "zoneinfo/EET", "zoneinfo/EST", "zoneinfo/EST5EDT", "zoneinfo/Egypt", "zoneinfo/Eire", "zoneinfo/Etc/GMT", "zoneinfo/Etc/GMT+0", "zoneinfo/Etc/GMT+1", "zoneinfo/Etc/GMT+10", "zoneinfo/Etc/GMT+11", "zoneinfo/Etc/GMT+12", "zoneinfo/Etc/GMT+2", "zoneinfo/Etc/GMT+3", "zoneinfo/Etc/GMT+4", "zoneinfo/Etc/GMT+5", "zoneinfo/Etc/GMT+6", "zoneinfo/Etc/GMT+7", "zoneinfo/Etc/GMT+8", "zoneinfo/Etc/GMT+9", "zoneinfo/Etc/GMT-0", "zoneinfo/Etc/GMT-1", "zoneinfo/Etc/GMT-10", "zoneinfo/Etc/GMT-11", "zoneinfo/Etc/GMT-12", "zoneinfo/Etc/GMT-13", "zoneinfo/Etc/GMT-14", "zoneinfo/Etc/GMT-2", "zoneinfo/Etc/GMT-3", "zoneinfo/Etc/GMT-4", "zoneinfo/Etc/GMT-5", "zoneinfo/Etc/GMT-6", "zoneinfo/Etc/GMT-7", "zoneinfo/Etc/GMT-8", "zoneinfo/Etc/GMT-9", "zoneinfo/Etc/GMT0", "zoneinfo/Etc/Greenwich", "zoneinfo/Etc/UCT", "zoneinfo/Etc/UTC", "zoneinfo/Etc/Universal", "zoneinfo/Etc/Zulu", "zoneinfo/Europe/Amsterdam", "zoneinfo/Europe/Andorra", "zoneinfo/Europe/Astrakhan", "zoneinfo/Europe/Athens", "zoneinfo/Europe/Belfast", "zoneinfo/Europe/Belgrade", "zoneinfo/Europe/Berlin", "zoneinfo/Europe/Bratislava", "zoneinfo/Europe/Brussels", "zoneinfo/Europe/Bucharest", "zoneinfo/Europe/Budapest", "zoneinfo/Europe/Busingen", "zoneinfo/Europe/Chisinau", "zoneinfo/Europe/Copenhagen", "zoneinfo/Europe/Dublin", "zoneinfo/Europe/Gibraltar", "zoneinfo/Europe/Guernsey", "zoneinfo/Europe/Helsinki", "zoneinfo/Europe/Isle_of_Man", "zoneinfo/Europe/Istanbul", "zoneinfo/Europe/Jersey", "zoneinfo/Europe/Kaliningrad", "zoneinfo/Europe/Kiev", "zoneinfo/Europe/Kirov", "zoneinfo/Europe/Lisbon", "zoneinfo/Europe/Ljubljana", "zoneinfo/Europe/London", "zoneinfo/Europe/Luxembourg", "zoneinfo/Europe/Madrid", "zoneinfo/Europe/Malta", "zoneinfo/Europe/Mariehamn", "zoneinfo/Europe/Minsk", "zoneinfo/Europe/Monaco", "zoneinfo/Europe/Moscow", "zoneinfo/Europe/Nicosia", "zoneinfo/Europe/Oslo", "zoneinfo/Europe/Paris", "zoneinfo/Europe/Podgorica", "zoneinfo/Europe/Prague", "zoneinfo/Europe/Riga", "zoneinfo/Europe/Rome", "zoneinfo/Europe/Samara", "zoneinfo/Europe/San_Marino", "zoneinfo/Europe/Sarajevo", "zoneinfo/Europe/Saratov", "zoneinfo/Europe/Simferopol", "zoneinfo/Europe/Skopje", "zoneinfo/Europe/Sofia", "zoneinfo/Europe/Stockholm", "zoneinfo/Europe/Tallinn", "zoneinfo/Europe/Tirane", "zoneinfo/Europe/Tiraspol", "zoneinfo/Europe/Ulyanovsk", "zoneinfo/Europe/Uzhgorod", "zoneinfo/Europe/Vaduz", "zoneinfo/Europe/Vatican", "zoneinfo/Europe/Vienna", "zoneinfo/Europe/Vilnius", "zoneinfo/Europe/Volgograd", "zoneinfo/Europe/Warsaw", "zoneinfo/Europe/Zagreb", "zoneinfo/Europe/Zaporozhye", "zoneinfo/Europe/Zurich", "zoneinfo/Factory", "zoneinfo/GB", "zoneinfo/GB-Eire", "zoneinfo/GMT", "zoneinfo/GMT+0", "zoneinfo/GMT-0", "zoneinfo/GMT0", "zoneinfo/Greenwich", "zoneinfo/HST", "zoneinfo/Hongkong", "zoneinfo/Iceland", "zoneinfo/Indian/Antananarivo", "zoneinfo/Indian/Chagos", "zoneinfo/Indian/Christmas", "zoneinfo/Indian/Cocos", "zoneinfo/Indian/Comoro", "zoneinfo/Indian/Kerguelen", "zoneinfo/Indian/Mahe", "zoneinfo/Indian/Maldives", "zoneinfo/Indian/Mauritius", "zoneinfo/Indian/Mayotte", "zoneinfo/Indian/Reunion", "zoneinfo/Iran", "zoneinfo/Israel", "zoneinfo/Jamaica", "zoneinfo/Japan", "zoneinfo/Kwajalein", "zoneinfo/Libya", "zoneinfo/MET", "zoneinfo/MST", "zoneinfo/MST7MDT", "zoneinfo/Mexico/BajaNorte", "zoneinfo/Mexico/BajaSur", "zoneinfo/Mexico/General", "zoneinfo/NZ", "zoneinfo/NZ-CHAT", "zoneinfo/Navajo", "zoneinfo/PRC", "zoneinfo/PST8PDT", "zoneinfo/Pacific/Apia", "zoneinfo/Pacific/Auckland", "zoneinfo/Pacific/Bougainville", "zoneinfo/Pacific/Chatham", "zoneinfo/Pacific/Chuuk", "zoneinfo/Pacific/Easter", "zoneinfo/Pacific/Efate", "zoneinfo/Pacific/Enderbury", "zoneinfo/Pacific/Fakaofo", "zoneinfo/Pacific/Fiji", "zoneinfo/Pacific/Funafuti", "zoneinfo/Pacific/Galapagos", "zoneinfo/Pacific/Gambier", "zoneinfo/Pacific/Guadalcanal", "zoneinfo/Pacific/Guam", "zoneinfo/Pacific/Honolulu", "zoneinfo/Pacific/Johnston", "zoneinfo/Pacific/Kiritimati", "zoneinfo/Pacific/Kosrae", "zoneinfo/Pacific/Kwajalein", "zoneinfo/Pacific/Majuro", "zoneinfo/Pacific/Marquesas", "zoneinfo/Pacific/Midway", "zoneinfo/Pacific/Nauru", "zoneinfo/Pacific/Niue", "zoneinfo/Pacific/Norfolk", "zoneinfo/Pacific/Noumea", "zoneinfo/Pacific/Pago_Pago", "zoneinfo/Pacific/Palau", "zoneinfo/Pacific/Pitcairn", "zoneinfo/Pacific/Pohnpei", "zoneinfo/Pacific/Ponape", "zoneinfo/Pacific/Port_Moresby", "zoneinfo/Pacific/Rarotonga", "zoneinfo/Pacific/Saipan", "zoneinfo/Pacific/Samoa", "zoneinfo/Pacific/Tahiti", "zoneinfo/Pacific/Tarawa", "zoneinfo/Pacific/Tongatapu", "zoneinfo/Pacific/Truk", "zoneinfo/Pacific/Wake", "zoneinfo/Pacific/Wallis", "zoneinfo/Pacific/Yap", "zoneinfo/Poland", "zoneinfo/Portugal", "zoneinfo/ROC", "zoneinfo/ROK", "zoneinfo/Singapore", "zoneinfo/Turkey", "zoneinfo/UCT", "zoneinfo/US/Alaska", "zoneinfo/US/Aleutian", "zoneinfo/US/Arizona", "zoneinfo/US/Central", "zoneinfo/US/East-Indiana", "zoneinfo/US/Eastern", "zoneinfo/US/Hawaii", "zoneinfo/US/Indiana-Starke", "zoneinfo/US/Michigan", "zoneinfo/US/Mountain", "zoneinfo/US/Pacific", "zoneinfo/US/Samoa", "zoneinfo/UTC", "zoneinfo/Universal", "zoneinfo/W-SU", "zoneinfo/WET", "zoneinfo/Zulu"}
+
+var files = map[string][]byte{
+
+ "zoneinfo/Africa/Abidjan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Accra": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 158, 48, 102, 180, 163, 52, 123, 128, 163, 211, 252, 80, 165, 21, 175, 0, 165, 181, 47, 208, 166, 246, 226, 128, 167, 150, 99, 80, 168, 216, 22, 0, 169, 119, 150, 208, 170, 186, 155, 0, 171, 90, 27, 208, 172, 155, 206, 128, 173, 59, 79, 80, 174, 125, 2, 0, 175, 28, 130, 208, 176, 94, 53, 128, 176, 253, 182, 80, 178, 64, 186, 128, 178, 224, 59, 80, 180, 33, 238, 0, 180, 193, 110, 208, 182, 3, 33, 128, 182, 162, 162, 80, 183, 228, 85, 0, 184, 131, 213, 208, 185, 198, 218, 0, 186, 102, 90, 208, 187, 168, 13, 128, 188, 71, 142, 80, 189, 137, 65, 0, 190, 40, 193, 208, 191, 106, 116, 128, 192, 9, 245, 80, 193, 76, 249, 128, 193, 236, 122, 80, 195, 46, 45, 0, 195, 205, 173, 208, 197, 15, 96, 128, 197, 174, 225, 80, 198, 240, 148, 0, 199, 144, 20, 208, 200, 211, 25, 0, 201, 114, 153, 208, 202, 180, 76, 128, 203, 83, 205, 80, 204, 149, 128, 0, 205, 53, 0, 208, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 255, 204, 0, 0, 0, 0, 4, 176, 1, 4, 0, 0, 0, 0, 0, 10, 76, 77, 84, 0, 43, 48, 48, 50, 48, 0, 71, 77, 84, 0, 0, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Addis_Ababa": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Algiers": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 8, 0, 0, 0, 26, 128, 0, 0, 0, 145, 96, 80, 79, 155, 71, 120, 240, 155, 215, 44, 112, 156, 188, 145, 112, 157, 192, 72, 240, 158, 137, 254, 112, 159, 160, 42, 240, 160, 96, 165, 240, 161, 128, 12, 240, 162, 46, 18, 240, 163, 122, 76, 240, 164, 53, 129, 240, 164, 184, 6, 112, 198, 255, 6, 112, 199, 88, 186, 128, 199, 218, 9, 160, 207, 146, 52, 16, 208, 138, 0, 0, 209, 114, 22, 16, 210, 78, 36, 112, 212, 75, 7, 112, 229, 206, 211, 0, 243, 92, 176, 240, 2, 120, 193, 240, 3, 67, 200, 240, 13, 207, 215, 0, 14, 173, 68, 240, 15, 120, 90, 0, 16, 104, 89, 16, 18, 118, 67, 112, 19, 102, 66, 128, 20, 95, 124, 16, 21, 79, 95, 0, 1, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 6, 5, 6, 5, 6, 4, 6, 4, 2, 3, 7, 6, 5, 6, 4, 7, 4, 6, 0, 0, 2, 220, 0, 0, 0, 0, 2, 49, 0, 4, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 13, 0, 0, 28, 32, 1, 17, 0, 0, 14, 16, 0, 22, 0, 0, 14, 16, 1, 8, 76, 77, 84, 0, 80, 77, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 69, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Asmara": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Asmera": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Bamako": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Bangui": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Banjul": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Bissau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 146, 230, 157, 28, 9, 103, 97, 16, 0, 1, 2, 255, 255, 241, 100, 0, 0, 255, 255, 241, 240, 0, 4, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 45, 48, 49, 0, 71, 77, 84, 0, 0, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Blantyre": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Brazzaville": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Bujumbura": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Cairo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 4, 0, 0, 0, 13, 128, 0, 0, 0, 200, 147, 180, 224, 200, 250, 123, 208, 201, 252, 239, 224, 202, 199, 232, 208, 203, 203, 174, 96, 204, 223, 41, 208, 205, 172, 225, 224, 206, 198, 244, 208, 207, 143, 102, 224, 208, 169, 121, 208, 209, 132, 96, 224, 210, 138, 173, 80, 232, 54, 99, 96, 232, 244, 45, 80, 234, 11, 185, 96, 234, 213, 96, 208, 235, 236, 250, 240, 236, 181, 109, 0, 237, 207, 127, 240, 238, 151, 242, 0, 239, 176, 179, 112, 240, 121, 37, 128, 241, 145, 230, 240, 242, 90, 89, 0, 243, 115, 26, 112, 244, 59, 140, 128, 245, 85, 159, 112, 246, 30, 17, 128, 247, 54, 210, 240, 247, 255, 69, 0, 249, 24, 6, 112, 249, 225, 202, 0, 250, 249, 57, 240, 251, 194, 253, 128, 252, 219, 190, 240, 253, 165, 130, 128, 254, 188, 242, 112, 255, 134, 182, 0, 0, 158, 37, 240, 1, 103, 233, 128, 2, 127, 89, 112, 3, 73, 29, 0, 4, 97, 222, 112, 5, 43, 162, 0, 6, 67, 17, 240, 7, 12, 213, 128, 8, 36, 69, 112, 8, 238, 9, 0, 10, 5, 120, 240, 10, 207, 60, 128, 11, 231, 253, 240, 12, 177, 193, 128, 13, 201, 49, 112, 14, 146, 245, 0, 15, 170, 100, 240, 16, 116, 40, 128, 17, 139, 152, 112, 18, 85, 92, 0, 19, 110, 29, 112, 20, 55, 225, 0, 21, 79, 80, 240, 22, 25, 20, 128, 23, 160, 147, 240, 23, 250, 72, 0, 25, 112, 163, 240, 25, 219, 123, 128, 26, 244, 60, 240, 27, 190, 0, 128, 28, 213, 112, 112, 29, 159, 52, 0, 30, 182, 163, 240, 31, 128, 103, 128, 32, 151, 215, 112, 33, 97, 155, 0, 34, 122, 92, 112, 35, 68, 32, 0, 36, 98, 39, 112, 37, 37, 83, 128, 38, 60, 195, 112, 39, 6, 135, 0, 40, 29, 246, 240, 40, 231, 186, 128, 42, 0, 123, 240, 42, 202, 63, 128, 43, 225, 175, 112, 44, 171, 115, 0, 45, 194, 226, 240, 46, 140, 166, 128, 47, 160, 19, 224, 48, 107, 12, 208, 49, 127, 245, 224, 50, 74, 238, 208, 51, 95, 215, 224, 52, 42, 208, 208, 53, 63, 185, 224, 54, 10, 178, 208, 55, 40, 214, 96, 55, 243, 207, 80, 57, 8, 184, 96, 57, 211, 177, 80, 58, 232, 154, 96, 59, 179, 147, 80, 60, 200, 124, 96, 61, 147, 117, 80, 62, 168, 94, 96, 63, 115, 87, 80, 64, 145, 122, 224, 65, 92, 115, 208, 66, 113, 92, 224, 67, 60, 85, 208, 68, 81, 62, 224, 69, 18, 253, 80, 70, 49, 32, 224, 70, 224, 106, 80, 72, 17, 2, 224, 72, 183, 17, 208, 73, 240, 228, 224, 74, 141, 185, 80, 75, 218, 1, 96, 76, 97, 189, 208, 76, 137, 88, 224, 76, 164, 250, 80, 83, 117, 56, 224, 83, 172, 137, 208, 83, 218, 188, 96, 84, 36, 130, 80, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 1, 2, 1, 2, 1, 2, 0, 0, 29, 85, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 4, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Casablanca": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 5, 0, 0, 0, 17, 128, 0, 0, 0, 150, 81, 249, 156, 198, 255, 20, 128, 199, 88, 172, 112, 199, 217, 237, 128, 210, 161, 50, 240, 219, 53, 164, 0, 219, 238, 39, 240, 251, 37, 114, 64, 251, 194, 239, 112, 8, 107, 132, 128, 8, 198, 109, 240, 11, 232, 12, 0, 12, 97, 71, 240, 13, 201, 63, 128, 14, 142, 242, 112, 15, 211, 81, 128, 16, 39, 163, 112, 26, 183, 166, 0, 30, 24, 111, 240, 72, 65, 230, 128, 72, 187, 34, 112, 74, 35, 26, 0, 74, 141, 213, 112, 75, 220, 192, 128, 76, 93, 229, 112, 77, 151, 184, 128, 78, 52, 140, 240, 79, 156, 160, 160, 80, 8, 187, 160, 80, 49, 154, 32, 80, 103, 167, 160, 81, 124, 130, 160, 81, 216, 203, 160, 82, 5, 158, 160, 82, 108, 115, 160, 83, 55, 122, 160, 83, 174, 33, 160, 83, 220, 70, 32, 84, 76, 85, 160, 85, 23, 92, 160, 85, 124, 224, 32, 85, 171, 4, 160, 86, 44, 55, 160, 86, 247, 62, 160, 87, 83, 135, 160, 87, 129, 172, 32, 88, 21, 84, 32, 88, 215, 32, 160, 89, 32, 244, 160, 89, 88, 83, 160, 89, 245, 54, 32, 90, 183, 2, 160, 90, 247, 156, 32, 91, 37, 192, 160, 91, 213, 24, 32, 92, 160, 31, 32, 92, 206, 67, 160, 92, 252, 104, 32, 93, 180, 250, 32, 94, 128, 1, 32, 94, 155, 176, 160, 94, 201, 213, 32, 95, 148, 220, 32, 96, 95, 227, 32, 96, 114, 88, 32, 96, 160, 124, 160, 97, 125, 248, 160, 98, 119, 36, 32, 99, 93, 218, 160, 100, 68, 145, 32, 101, 61, 188, 160, 102, 27, 56, 160, 103, 29, 158, 160, 103, 241, 224, 32, 104, 253, 128, 160, 105, 200, 135, 160, 106, 221, 98, 160, 107, 168, 105, 160, 108, 198, 127, 32, 109, 136, 75, 160, 110, 166, 97, 32, 111, 104, 45, 160, 112, 134, 67, 32, 113, 81, 74, 32, 114, 102, 37, 32, 115, 49, 44, 32, 116, 70, 7, 32, 117, 17, 14, 32, 118, 47, 35, 160, 118, 240, 240, 32, 120, 15, 5, 160, 120, 208, 210, 32, 121, 238, 231, 160, 122, 176, 180, 32, 123, 206, 201, 160, 124, 153, 208, 160, 125, 165, 113, 32, 126, 121, 178, 160, 127, 114, 222, 32, 127, 142, 155, 176, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 248, 228, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 0, 0, 14, 16, 0, 13, 0, 0, 0, 0, 0, 9, 76, 77, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 67, 69, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Africa/Ceuta": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 7, 0, 0, 0, 22, 128, 0, 0, 0, 158, 214, 117, 112, 159, 161, 110, 96, 170, 5, 239, 112, 170, 231, 110, 0, 173, 201, 167, 240, 174, 167, 50, 0, 175, 160, 79, 112, 176, 135, 20, 0, 177, 137, 122, 0, 178, 112, 48, 128, 178, 225, 145, 128, 251, 37, 114, 64, 251, 194, 239, 112, 8, 107, 132, 128, 8, 198, 109, 240, 11, 232, 12, 0, 12, 97, 71, 240, 13, 201, 63, 128, 14, 142, 242, 112, 15, 211, 81, 128, 16, 39, 163, 112, 26, 183, 166, 0, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 251, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 4, 0, 0, 14, 16, 0, 13, 0, 0, 28, 32, 1, 17, 0, 0, 14, 16, 0, 13, 76, 77, 84, 0, 87, 69, 84, 0, 87, 69, 83, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Africa/Conakry": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Dakar": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Dar_es_Salaam": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Djibouti": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Douala": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/El_Aaiun": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 188, 72, 240, 224, 11, 209, 176, 144, 11, 232, 12, 0, 12, 97, 71, 240, 13, 201, 63, 128, 14, 142, 242, 112, 15, 211, 81, 128, 16, 39, 163, 112, 72, 65, 230, 128, 72, 187, 34, 112, 74, 35, 26, 0, 74, 141, 213, 112, 75, 220, 192, 128, 76, 93, 229, 112, 77, 151, 184, 128, 78, 52, 140, 240, 79, 156, 160, 160, 80, 8, 187, 160, 80, 49, 154, 32, 80, 103, 167, 160, 81, 124, 130, 160, 81, 216, 203, 160, 82, 5, 158, 160, 82, 108, 115, 160, 83, 55, 122, 160, 83, 174, 33, 160, 83, 220, 70, 32, 84, 76, 85, 160, 85, 23, 92, 160, 85, 124, 224, 32, 85, 171, 4, 160, 86, 44, 55, 160, 86, 247, 62, 160, 87, 83, 135, 160, 87, 129, 172, 32, 88, 21, 84, 32, 88, 215, 32, 160, 89, 32, 244, 160, 89, 88, 83, 160, 89, 245, 54, 32, 90, 183, 2, 160, 90, 247, 156, 32, 91, 37, 192, 160, 91, 213, 24, 32, 92, 160, 31, 32, 92, 206, 67, 160, 92, 252, 104, 32, 93, 180, 250, 32, 94, 128, 1, 32, 94, 155, 176, 160, 94, 201, 213, 32, 95, 148, 220, 32, 96, 95, 227, 32, 96, 114, 88, 32, 96, 160, 124, 160, 97, 125, 248, 160, 98, 119, 36, 32, 99, 93, 218, 160, 100, 68, 145, 32, 101, 61, 188, 160, 102, 27, 56, 160, 103, 29, 158, 160, 103, 241, 224, 32, 104, 253, 128, 160, 105, 200, 135, 160, 106, 221, 98, 160, 107, 168, 105, 160, 108, 198, 127, 32, 109, 136, 75, 160, 110, 166, 97, 32, 111, 104, 45, 160, 112, 134, 67, 32, 113, 81, 74, 32, 114, 102, 37, 32, 115, 49, 44, 32, 116, 70, 7, 32, 117, 17, 14, 32, 118, 47, 35, 160, 118, 240, 240, 32, 120, 15, 5, 160, 120, 208, 210, 32, 121, 238, 231, 160, 122, 176, 180, 32, 123, 206, 201, 160, 124, 153, 208, 160, 125, 165, 113, 32, 126, 121, 178, 160, 127, 114, 222, 32, 127, 142, 155, 176, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 255, 255, 243, 160, 0, 0, 255, 255, 241, 240, 0, 4, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 13, 76, 77, 84, 0, 45, 48, 49, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Africa/Freetown": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Gaborone": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Harare": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Johannesburg": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 9, 128, 0, 0, 0, 130, 70, 207, 104, 204, 174, 140, 128, 205, 158, 111, 112, 206, 142, 110, 128, 207, 126, 81, 112, 1, 3, 2, 3, 2, 3, 0, 0, 26, 64, 0, 0, 0, 0, 21, 24, 0, 4, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 83, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 83, 65, 83, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Juba": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 182, 163, 218, 220, 0, 158, 23, 224, 1, 122, 52, 80, 2, 125, 249, 224, 3, 91, 103, 208, 4, 96, 126, 224, 5, 61, 236, 208, 6, 64, 96, 224, 7, 31, 32, 80, 8, 32, 66, 224, 9, 0, 83, 208, 10, 0, 36, 224, 10, 225, 135, 80, 11, 224, 6, 224, 12, 196, 12, 80, 13, 191, 232, 224, 14, 165, 63, 208, 15, 169, 5, 96, 16, 134, 115, 80, 17, 136, 231, 96, 18, 103, 166, 208, 19, 104, 201, 96, 20, 74, 43, 208, 21, 72, 171, 96, 22, 43, 95, 80, 23, 40, 141, 96, 24, 12, 146, 208, 25, 8, 111, 96, 25, 237, 198, 80, 26, 241, 139, 224, 27, 208, 75, 80, 28, 209, 109, 224, 29, 177, 126, 208, 56, 128, 69, 32, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 0, 0, 29, 164, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 0, 13, 76, 77, 84, 0, 67, 65, 83, 84, 0, 67, 65, 84, 0, 69, 65, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Kampala": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Khartoum": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 5, 0, 0, 0, 17, 128, 0, 0, 0, 182, 163, 218, 0, 0, 158, 23, 224, 1, 122, 52, 80, 2, 125, 249, 224, 3, 91, 103, 208, 4, 96, 126, 224, 5, 61, 236, 208, 6, 64, 96, 224, 7, 31, 32, 80, 8, 32, 66, 224, 9, 0, 83, 208, 10, 0, 36, 224, 10, 225, 135, 80, 11, 224, 6, 224, 12, 196, 12, 80, 13, 191, 232, 224, 14, 165, 63, 208, 15, 169, 5, 96, 16, 134, 115, 80, 17, 136, 231, 96, 18, 103, 166, 208, 19, 104, 201, 96, 20, 74, 43, 208, 21, 72, 171, 96, 22, 43, 95, 80, 23, 40, 141, 96, 24, 12, 146, 208, 25, 8, 111, 96, 25, 237, 198, 80, 26, 241, 139, 224, 27, 208, 75, 80, 28, 209, 109, 224, 29, 177, 126, 208, 56, 128, 69, 32, 89, 248, 228, 80, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 0, 0, 30, 128, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 0, 13, 0, 0, 28, 32, 0, 9, 76, 77, 84, 0, 67, 65, 83, 84, 0, 67, 65, 84, 0, 69, 65, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Kigali": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Kinshasa": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Lagos": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Libreville": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Lome": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Luanda": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Lubumbashi": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Lusaka": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Malabo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Maputo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 130, 70, 197, 244, 0, 1, 0, 0, 30, 140, 0, 0, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 67, 65, 84, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Maseru": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 9, 128, 0, 0, 0, 130, 70, 207, 104, 204, 174, 140, 128, 205, 158, 111, 112, 206, 142, 110, 128, 207, 126, 81, 112, 1, 3, 2, 3, 2, 3, 0, 0, 26, 64, 0, 0, 0, 0, 21, 24, 0, 4, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 83, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 83, 65, 83, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Mbabane": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 9, 128, 0, 0, 0, 130, 70, 207, 104, 204, 174, 140, 128, 205, 158, 111, 112, 206, 142, 110, 128, 207, 126, 81, 112, 1, 3, 2, 3, 2, 3, 0, 0, 26, 64, 0, 0, 0, 0, 21, 24, 0, 4, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 4, 76, 77, 84, 0, 83, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 83, 65, 83, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Mogadishu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Monrovia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 160, 95, 108, 156, 3, 202, 90, 110, 1, 2, 3, 255, 255, 245, 228, 0, 0, 255, 255, 245, 228, 0, 4, 255, 255, 245, 146, 0, 4, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 77, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Nairobi": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Africa/Ndjamena": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 13, 128, 0, 0, 0, 146, 230, 128, 100, 18, 102, 113, 112, 19, 38, 222, 96, 0, 1, 2, 1, 0, 0, 14, 28, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 76, 77, 84, 0, 87, 65, 84, 0, 87, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Niamey": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Nouakchott": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Ouagadougou": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Porto-Novo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 81, 243, 80, 0, 1, 0, 0, 3, 48, 0, 0, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 87, 65, 84, 0, 0, 0, 0, 0, 10, 87, 65, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Sao_Tome": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Timbuktu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Africa/Tripoli": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 161, 242, 193, 36, 221, 187, 177, 16, 222, 35, 173, 96, 225, 120, 210, 16, 225, 231, 101, 224, 229, 47, 63, 112, 229, 169, 204, 224, 235, 78, 198, 240, 22, 146, 66, 96, 23, 8, 247, 112, 23, 250, 43, 224, 24, 234, 42, 240, 25, 219, 95, 96, 26, 204, 175, 240, 27, 189, 228, 96, 28, 180, 122, 240, 29, 159, 23, 224, 30, 147, 11, 112, 31, 130, 238, 96, 32, 112, 74, 112, 33, 97, 126, 224, 34, 82, 207, 112, 35, 68, 3, 224, 36, 52, 2, 240, 37, 37, 55, 96, 38, 64, 183, 240, 50, 78, 241, 96, 51, 68, 54, 112, 52, 53, 106, 224, 80, 157, 153, 0, 81, 84, 217, 128, 82, 105, 180, 128, 0, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 3, 2, 1, 3, 0, 0, 12, 92, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 0, 13, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 10},
+
+ "zoneinfo/Africa/Tunis": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 6, 0, 0, 0, 17, 128, 0, 0, 0, 145, 96, 80, 79, 198, 58, 136, 224, 199, 88, 158, 96, 199, 219, 34, 224, 202, 226, 84, 224, 203, 173, 105, 240, 204, 231, 75, 16, 205, 169, 23, 144, 205, 194, 22, 0, 205, 204, 176, 16, 206, 162, 53, 0, 207, 146, 52, 16, 208, 137, 227, 224, 209, 114, 22, 16, 210, 78, 22, 96, 13, 199, 223, 240, 14, 137, 172, 112, 15, 170, 100, 240, 16, 116, 26, 112, 34, 163, 58, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 60, 195, 112, 39, 5, 39, 112, 66, 116, 13, 240, 67, 60, 128, 0, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 1, 4, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 9, 140, 0, 0, 0, 0, 2, 49, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 0, 0, 14, 16, 0, 13, 0, 0, 28, 32, 1, 8, 76, 77, 84, 0, 80, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 69, 84, 45, 49, 10},
+
+ "zoneinfo/Africa/Windhoek": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 8, 0, 0, 0, 28, 128, 0, 0, 0, 130, 70, 207, 104, 204, 174, 140, 128, 205, 158, 111, 112, 38, 6, 167, 224, 45, 140, 199, 96, 46, 105, 28, 16, 47, 125, 233, 0, 48, 72, 254, 16, 49, 103, 5, 128, 50, 40, 224, 16, 51, 70, 231, 128, 52, 17, 252, 144, 53, 38, 201, 128, 53, 241, 222, 144, 55, 6, 171, 128, 55, 209, 192, 144, 56, 230, 141, 128, 57, 177, 162, 144, 58, 198, 111, 128, 59, 145, 132, 144, 60, 175, 140, 0, 61, 113, 102, 144, 62, 143, 110, 0, 63, 90, 131, 16, 64, 111, 80, 0, 65, 58, 101, 16, 66, 79, 50, 0, 67, 26, 71, 16, 68, 47, 20, 0, 68, 250, 41, 16, 70, 14, 246, 0, 70, 218, 11, 16, 71, 248, 18, 128, 72, 195, 39, 144, 73, 215, 244, 128, 74, 163, 9, 144, 75, 183, 214, 128, 76, 130, 235, 144, 77, 151, 184, 128, 78, 98, 205, 144, 79, 119, 154, 128, 80, 66, 175, 144, 81, 96, 183, 0, 82, 34, 145, 144, 83, 64, 153, 0, 84, 11, 174, 16, 85, 32, 123, 0, 85, 235, 144, 16, 87, 0, 93, 0, 87, 203, 114, 16, 88, 224, 63, 0, 89, 171, 84, 16, 1, 2, 3, 2, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 4, 0, 0, 16, 8, 0, 0, 0, 0, 21, 24, 0, 4, 0, 0, 28, 32, 0, 10, 0, 0, 42, 48, 1, 10, 0, 0, 28, 32, 0, 15, 0, 0, 14, 16, 0, 19, 0, 0, 28, 32, 1, 23, 0, 0, 28, 32, 0, 15, 76, 77, 84, 0, 43, 48, 49, 51, 48, 0, 83, 65, 83, 84, 0, 67, 65, 84, 0, 87, 65, 84, 0, 87, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 65, 84, 45, 50, 10},
+
+ "zoneinfo/America/Adak": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 9, 0, 0, 0, 33, 128, 0, 0, 0, 203, 137, 68, 208, 210, 35, 244, 112, 210, 97, 80, 64, 250, 210, 85, 176, 254, 184, 113, 80, 255, 168, 84, 64, 0, 152, 83, 80, 1, 136, 54, 64, 2, 120, 53, 80, 3, 113, 82, 192, 4, 97, 81, 208, 5, 81, 52, 192, 6, 65, 51, 208, 7, 49, 22, 192, 7, 141, 109, 208, 9, 16, 248, 192, 9, 173, 233, 80, 10, 240, 218, 192, 11, 224, 217, 208, 12, 217, 247, 64, 13, 192, 187, 208, 14, 185, 217, 64, 15, 169, 216, 80, 16, 153, 187, 64, 17, 137, 186, 80, 18, 121, 157, 64, 19, 105, 156, 80, 20, 89, 127, 64, 21, 73, 126, 80, 22, 57, 97, 64, 23, 41, 96, 80, 24, 34, 125, 192, 25, 9, 66, 80, 26, 2, 95, 192, 26, 43, 34, 32, 26, 242, 80, 192, 27, 226, 51, 176, 28, 210, 50, 192, 29, 194, 21, 176, 30, 178, 20, 192, 31, 161, 247, 176, 32, 118, 71, 64, 33, 129, 217, 176, 34, 86, 41, 64, 35, 106, 246, 48, 36, 54, 11, 64, 37, 74, 216, 48, 38, 21, 237, 64, 39, 42, 186, 48, 39, 255, 9, 192, 41, 10, 156, 48, 41, 222, 235, 192, 42, 234, 126, 48, 43, 190, 205, 192, 44, 211, 154, 176, 45, 158, 175, 192, 46, 179, 124, 176, 47, 126, 145, 192, 48, 147, 94, 176, 49, 103, 174, 64, 50, 115, 64, 176, 51, 71, 144, 64, 52, 83, 34, 176, 53, 39, 114, 64, 54, 51, 4, 176, 55, 7, 84, 64, 56, 28, 33, 48, 56, 231, 54, 64, 57, 252, 3, 48, 58, 199, 24, 64, 59, 219, 229, 48, 60, 176, 52, 192, 61, 187, 199, 48, 62, 144, 22, 192, 63, 155, 169, 48, 64, 111, 248, 192, 65, 132, 197, 176, 66, 79, 218, 192, 67, 100, 167, 176, 68, 47, 188, 192, 69, 68, 137, 176, 69, 243, 239, 64, 71, 45, 166, 48, 71, 211, 209, 64, 73, 13, 136, 48, 73, 179, 179, 64, 74, 237, 106, 48, 75, 156, 207, 192, 76, 214, 134, 176, 77, 124, 177, 192, 78, 182, 104, 176, 79, 92, 147, 192, 80, 150, 74, 176, 81, 60, 117, 192, 82, 118, 44, 176, 83, 28, 87, 192, 84, 86, 14, 176, 84, 252, 57, 192, 86, 53, 240, 176, 86, 229, 86, 64, 88, 31, 13, 48, 88, 197, 56, 64, 89, 254, 239, 48, 90, 165, 26, 64, 91, 222, 209, 48, 92, 132, 252, 64, 93, 190, 179, 48, 94, 100, 222, 64, 95, 158, 149, 48, 96, 77, 250, 192, 97, 135, 177, 176, 98, 45, 220, 192, 99, 103, 147, 176, 100, 13, 190, 192, 101, 71, 117, 176, 101, 237, 160, 192, 103, 39, 87, 176, 103, 205, 130, 192, 105, 7, 57, 176, 105, 173, 100, 192, 106, 231, 27, 176, 107, 150, 129, 64, 108, 208, 56, 48, 109, 118, 99, 64, 110, 176, 26, 48, 111, 86, 69, 64, 112, 143, 252, 48, 113, 54, 39, 64, 114, 111, 222, 48, 115, 22, 9, 64, 116, 79, 192, 48, 116, 255, 37, 192, 118, 56, 220, 176, 118, 223, 7, 192, 120, 24, 190, 176, 120, 190, 233, 192, 121, 248, 160, 176, 122, 158, 203, 192, 123, 216, 130, 176, 124, 126, 173, 192, 125, 184, 100, 176, 126, 94, 143, 192, 127, 152, 70, 176, 1, 2, 3, 1, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 90, 98, 0, 0, 255, 255, 101, 80, 0, 4, 255, 255, 115, 96, 1, 8, 255, 255, 115, 96, 1, 12, 255, 255, 101, 80, 0, 16, 255, 255, 115, 96, 1, 20, 255, 255, 115, 96, 0, 24, 255, 255, 129, 112, 1, 29, 255, 255, 115, 96, 0, 25, 76, 77, 84, 0, 78, 83, 84, 0, 78, 87, 84, 0, 78, 80, 84, 0, 66, 83, 84, 0, 66, 68, 84, 0, 65, 72, 83, 84, 0, 72, 68, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 72, 83, 84, 49, 48, 72, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Anchorage": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 9, 0, 0, 0, 40, 128, 0, 0, 0, 203, 137, 54, 192, 210, 35, 244, 112, 210, 97, 66, 48, 250, 210, 71, 160, 254, 184, 99, 64, 255, 168, 70, 48, 0, 152, 69, 64, 1, 136, 40, 48, 2, 120, 39, 64, 3, 113, 68, 176, 4, 97, 67, 192, 5, 81, 38, 176, 6, 65, 37, 192, 7, 49, 8, 176, 7, 141, 95, 192, 9, 16, 234, 176, 9, 173, 219, 64, 10, 240, 204, 176, 11, 224, 203, 192, 12, 217, 233, 48, 13, 192, 173, 192, 14, 185, 203, 48, 15, 169, 202, 64, 16, 153, 173, 48, 17, 137, 172, 64, 18, 121, 143, 48, 19, 105, 142, 64, 20, 89, 113, 48, 21, 73, 112, 64, 22, 57, 83, 48, 23, 41, 82, 64, 24, 34, 111, 176, 25, 9, 52, 64, 26, 2, 81, 176, 26, 43, 20, 16, 26, 242, 66, 176, 27, 226, 37, 160, 28, 210, 36, 176, 29, 194, 7, 160, 30, 178, 6, 176, 31, 161, 233, 160, 32, 118, 57, 48, 33, 129, 203, 160, 34, 86, 27, 48, 35, 106, 232, 32, 36, 53, 253, 48, 37, 74, 202, 32, 38, 21, 223, 48, 39, 42, 172, 32, 39, 254, 251, 176, 41, 10, 142, 32, 41, 222, 221, 176, 42, 234, 112, 32, 43, 190, 191, 176, 44, 211, 140, 160, 45, 158, 161, 176, 46, 179, 110, 160, 47, 126, 131, 176, 48, 147, 80, 160, 49, 103, 160, 48, 50, 115, 50, 160, 51, 71, 130, 48, 52, 83, 20, 160, 53, 39, 100, 48, 54, 50, 246, 160, 55, 7, 70, 48, 56, 28, 19, 32, 56, 231, 40, 48, 57, 251, 245, 32, 58, 199, 10, 48, 59, 219, 215, 32, 60, 176, 38, 176, 61, 187, 185, 32, 62, 144, 8, 176, 63, 155, 155, 32, 64, 111, 234, 176, 65, 132, 183, 160, 66, 79, 204, 176, 67, 100, 153, 160, 68, 47, 174, 176, 69, 68, 123, 160, 69, 243, 225, 48, 71, 45, 152, 32, 71, 211, 195, 48, 73, 13, 122, 32, 73, 179, 165, 48, 74, 237, 92, 32, 75, 156, 193, 176, 76, 214, 120, 160, 77, 124, 163, 176, 78, 182, 90, 160, 79, 92, 133, 176, 80, 150, 60, 160, 81, 60, 103, 176, 82, 118, 30, 160, 83, 28, 73, 176, 84, 86, 0, 160, 84, 252, 43, 176, 86, 53, 226, 160, 86, 229, 72, 48, 88, 30, 255, 32, 88, 197, 42, 48, 89, 254, 225, 32, 90, 165, 12, 48, 91, 222, 195, 32, 92, 132, 238, 48, 93, 190, 165, 32, 94, 100, 208, 48, 95, 158, 135, 32, 96, 77, 236, 176, 97, 135, 163, 160, 98, 45, 206, 176, 99, 103, 133, 160, 100, 13, 176, 176, 101, 71, 103, 160, 101, 237, 146, 176, 103, 39, 73, 160, 103, 205, 116, 176, 105, 7, 43, 160, 105, 173, 86, 176, 106, 231, 13, 160, 107, 150, 115, 48, 108, 208, 42, 32, 109, 118, 85, 48, 110, 176, 12, 32, 111, 86, 55, 48, 112, 143, 238, 32, 113, 54, 25, 48, 114, 111, 208, 32, 115, 21, 251, 48, 116, 79, 178, 32, 116, 255, 23, 176, 118, 56, 206, 160, 118, 222, 249, 176, 120, 24, 176, 160, 120, 190, 219, 176, 121, 248, 146, 160, 122, 158, 189, 176, 123, 216, 116, 160, 124, 126, 159, 176, 125, 184, 86, 160, 126, 94, 129, 176, 127, 152, 56, 160, 1, 2, 3, 1, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 115, 120, 0, 0, 255, 255, 115, 96, 0, 4, 255, 255, 129, 112, 1, 8, 255, 255, 129, 112, 1, 12, 255, 255, 115, 96, 0, 16, 255, 255, 129, 112, 1, 21, 255, 255, 129, 112, 0, 26, 255, 255, 143, 128, 1, 30, 255, 255, 129, 112, 0, 35, 76, 77, 84, 0, 65, 83, 84, 0, 65, 87, 84, 0, 65, 80, 84, 0, 65, 72, 83, 84, 0, 65, 72, 68, 84, 0, 89, 83, 84, 0, 65, 75, 68, 84, 0, 65, 75, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 65, 75, 83, 84, 57, 65, 75, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Anguilla": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Antigua": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Araguaina": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 116, 48, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 151, 255, 176, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 35, 88, 16, 176, 35, 226, 112, 32, 37, 55, 242, 176, 37, 212, 199, 32, 48, 128, 121, 48, 49, 29, 77, 160, 50, 87, 32, 176, 51, 6, 106, 32, 52, 56, 84, 48, 52, 248, 193, 32, 54, 32, 31, 48, 54, 207, 104, 160, 55, 246, 198, 176, 56, 184, 133, 32, 57, 223, 227, 48, 58, 143, 44, 160, 59, 200, 255, 176, 60, 111, 14, 160, 61, 196, 145, 48, 62, 78, 240, 160, 80, 131, 101, 48, 81, 32, 57, 160, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 210, 208, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Buenos_Aires": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 241, 48, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 72, 250, 162, 176, 73, 188, 97, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 4, 5, 4, 5, 5, 255, 255, 201, 52, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Catamarca": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 187, 241, 48, 64, 213, 11, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 194, 84, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/ComodRivadavia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 187, 241, 48, 64, 213, 11, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 194, 84, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Cordoba": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 72, 250, 162, 176, 73, 188, 97, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 4, 5, 4, 5, 5, 255, 255, 195, 208, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Jujuy": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 42, 87, 192, 39, 226, 219, 176, 40, 238, 138, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 2, 3, 2, 4, 5, 4, 5, 3, 5, 4, 5, 5, 255, 255, 194, 200, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/La_Rioja": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 205, 181, 160, 40, 38, 38, 64, 41, 0, 241, 48, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 187, 241, 48, 64, 213, 11, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 5, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 193, 84, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Mendoza": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 25, 52, 64, 39, 205, 195, 176, 40, 250, 103, 192, 41, 176, 72, 176, 42, 224, 225, 64, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 176, 19, 176, 65, 86, 62, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 2, 3, 2, 3, 2, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 191, 124, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Rio_Gallegos": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 241, 48, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 187, 241, 48, 64, 213, 11, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 191, 28, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Salta": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 4, 5, 5, 255, 255, 194, 172, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/San_Juan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 205, 181, 160, 40, 38, 38, 64, 41, 0, 241, 48, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 186, 159, 176, 65, 3, 48, 64, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 5, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 191, 196, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/San_Luis": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 7, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 253, 165, 160, 39, 25, 52, 64, 39, 205, 195, 176, 40, 71, 27, 192, 55, 246, 198, 176, 56, 191, 42, 176, 64, 186, 159, 176, 65, 3, 48, 64, 71, 119, 9, 176, 71, 147, 252, 160, 71, 211, 82, 176, 72, 241, 118, 64, 73, 179, 52, 176, 74, 209, 88, 64, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 2, 3, 2, 5, 3, 5, 2, 5, 4, 3, 2, 3, 2, 5, 5, 255, 255, 193, 204, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 255, 255, 213, 208, 1, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Tucuman": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 187, 241, 48, 64, 203, 209, 64, 71, 119, 9, 176, 71, 220, 127, 32, 72, 250, 162, 176, 73, 188, 97, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 4, 5, 5, 255, 255, 194, 220, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Argentina/Ushuaia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 241, 48, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 185, 78, 48, 64, 213, 11, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 191, 248, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Aruba": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 147, 30, 46, 35, 246, 152, 236, 72, 0, 1, 2, 255, 255, 191, 93, 0, 0, 255, 255, 192, 184, 0, 4, 255, 255, 199, 192, 0, 10, 76, 77, 84, 0, 45, 48, 52, 51, 48, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Asuncion": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 184, 23, 245, 144, 5, 43, 218, 64, 7, 252, 240, 176, 10, 207, 116, 192, 11, 151, 202, 176, 12, 177, 249, 192, 13, 120, 254, 48, 14, 147, 45, 64, 15, 90, 49, 176, 16, 116, 96, 192, 17, 100, 67, 176, 18, 85, 148, 64, 19, 70, 200, 176, 20, 56, 25, 64, 21, 39, 252, 48, 22, 25, 76, 192, 23, 9, 47, 176, 23, 250, 128, 64, 24, 234, 99, 48, 25, 219, 179, 192, 26, 204, 232, 48, 27, 190, 56, 192, 28, 174, 27, 176, 29, 159, 108, 64, 30, 143, 79, 48, 31, 128, 159, 192, 32, 112, 130, 176, 33, 97, 211, 64, 34, 83, 7, 176, 35, 68, 88, 64, 36, 52, 59, 48, 37, 65, 59, 64, 38, 21, 110, 176, 39, 6, 191, 64, 39, 246, 162, 48, 40, 238, 138, 64, 41, 176, 72, 176, 42, 207, 189, 192, 43, 185, 9, 48, 44, 171, 171, 64, 45, 112, 12, 176, 46, 140, 222, 192, 47, 79, 238, 176, 48, 110, 18, 64, 49, 54, 104, 48, 50, 87, 46, 192, 51, 15, 178, 176, 52, 55, 16, 192, 52, 248, 207, 48, 54, 22, 242, 192, 54, 225, 235, 176, 55, 246, 212, 192, 56, 193, 205, 176, 57, 214, 182, 192, 58, 161, 175, 176, 59, 191, 211, 64, 60, 175, 182, 48, 61, 113, 144, 192, 62, 143, 152, 48, 63, 90, 173, 64, 64, 111, 122, 48, 65, 113, 238, 64, 66, 51, 172, 176, 67, 81, 208, 64, 68, 19, 142, 176, 69, 49, 178, 64, 69, 243, 112, 176, 71, 26, 206, 192, 71, 211, 82, 176, 72, 250, 176, 192, 73, 179, 52, 176, 74, 218, 146, 192, 75, 193, 59, 48, 76, 167, 255, 192, 77, 161, 29, 48, 78, 135, 225, 192, 79, 128, 255, 48, 80, 112, 254, 64, 81, 78, 108, 48, 82, 80, 224, 64, 83, 46, 78, 48, 84, 48, 194, 64, 85, 14, 48, 48, 86, 16, 164, 64, 86, 247, 76, 176, 87, 240, 134, 64, 88, 215, 46, 176, 89, 208, 104, 64, 90, 183, 16, 176, 91, 185, 132, 192, 92, 150, 242, 176, 93, 153, 102, 192, 94, 118, 212, 176, 95, 121, 72, 192, 96, 95, 241, 48, 97, 89, 42, 192, 98, 63, 211, 48, 99, 57, 12, 192, 100, 31, 181, 48, 101, 24, 238, 192, 101, 255, 151, 48, 103, 2, 11, 64, 103, 223, 121, 48, 104, 225, 237, 64, 105, 191, 91, 48, 106, 193, 207, 64, 107, 168, 119, 176, 108, 161, 177, 64, 109, 136, 89, 176, 110, 129, 147, 64, 111, 104, 59, 176, 112, 106, 175, 192, 113, 72, 29, 176, 114, 74, 145, 192, 115, 39, 255, 176, 116, 42, 115, 192, 117, 17, 28, 48, 118, 10, 85, 192, 118, 240, 254, 48, 119, 234, 55, 192, 120, 208, 224, 48, 121, 202, 25, 192, 122, 176, 194, 48, 123, 179, 54, 64, 124, 144, 164, 48, 125, 147, 24, 64, 126, 112, 134, 48, 127, 114, 250, 64, 127, 255, 255, 255, 1, 2, 3, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 4, 255, 255, 201, 240, 0, 0, 255, 255, 201, 240, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 0, 12, 255, 255, 213, 208, 1, 12, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 65, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 60, 45, 48, 51, 62, 44, 77, 49, 48, 46, 49, 46, 48, 47, 48, 44, 77, 51, 46, 52, 46, 48, 47, 48, 10},
+
+ "zoneinfo/America/Atikokan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 158, 184, 161, 128, 159, 186, 249, 112, 200, 248, 87, 96, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 2, 1, 2, 1, 3, 4, 5, 255, 255, 170, 28, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/America/Atka": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 9, 0, 0, 0, 33, 128, 0, 0, 0, 203, 137, 68, 208, 210, 35, 244, 112, 210, 97, 80, 64, 250, 210, 85, 176, 254, 184, 113, 80, 255, 168, 84, 64, 0, 152, 83, 80, 1, 136, 54, 64, 2, 120, 53, 80, 3, 113, 82, 192, 4, 97, 81, 208, 5, 81, 52, 192, 6, 65, 51, 208, 7, 49, 22, 192, 7, 141, 109, 208, 9, 16, 248, 192, 9, 173, 233, 80, 10, 240, 218, 192, 11, 224, 217, 208, 12, 217, 247, 64, 13, 192, 187, 208, 14, 185, 217, 64, 15, 169, 216, 80, 16, 153, 187, 64, 17, 137, 186, 80, 18, 121, 157, 64, 19, 105, 156, 80, 20, 89, 127, 64, 21, 73, 126, 80, 22, 57, 97, 64, 23, 41, 96, 80, 24, 34, 125, 192, 25, 9, 66, 80, 26, 2, 95, 192, 26, 43, 34, 32, 26, 242, 80, 192, 27, 226, 51, 176, 28, 210, 50, 192, 29, 194, 21, 176, 30, 178, 20, 192, 31, 161, 247, 176, 32, 118, 71, 64, 33, 129, 217, 176, 34, 86, 41, 64, 35, 106, 246, 48, 36, 54, 11, 64, 37, 74, 216, 48, 38, 21, 237, 64, 39, 42, 186, 48, 39, 255, 9, 192, 41, 10, 156, 48, 41, 222, 235, 192, 42, 234, 126, 48, 43, 190, 205, 192, 44, 211, 154, 176, 45, 158, 175, 192, 46, 179, 124, 176, 47, 126, 145, 192, 48, 147, 94, 176, 49, 103, 174, 64, 50, 115, 64, 176, 51, 71, 144, 64, 52, 83, 34, 176, 53, 39, 114, 64, 54, 51, 4, 176, 55, 7, 84, 64, 56, 28, 33, 48, 56, 231, 54, 64, 57, 252, 3, 48, 58, 199, 24, 64, 59, 219, 229, 48, 60, 176, 52, 192, 61, 187, 199, 48, 62, 144, 22, 192, 63, 155, 169, 48, 64, 111, 248, 192, 65, 132, 197, 176, 66, 79, 218, 192, 67, 100, 167, 176, 68, 47, 188, 192, 69, 68, 137, 176, 69, 243, 239, 64, 71, 45, 166, 48, 71, 211, 209, 64, 73, 13, 136, 48, 73, 179, 179, 64, 74, 237, 106, 48, 75, 156, 207, 192, 76, 214, 134, 176, 77, 124, 177, 192, 78, 182, 104, 176, 79, 92, 147, 192, 80, 150, 74, 176, 81, 60, 117, 192, 82, 118, 44, 176, 83, 28, 87, 192, 84, 86, 14, 176, 84, 252, 57, 192, 86, 53, 240, 176, 86, 229, 86, 64, 88, 31, 13, 48, 88, 197, 56, 64, 89, 254, 239, 48, 90, 165, 26, 64, 91, 222, 209, 48, 92, 132, 252, 64, 93, 190, 179, 48, 94, 100, 222, 64, 95, 158, 149, 48, 96, 77, 250, 192, 97, 135, 177, 176, 98, 45, 220, 192, 99, 103, 147, 176, 100, 13, 190, 192, 101, 71, 117, 176, 101, 237, 160, 192, 103, 39, 87, 176, 103, 205, 130, 192, 105, 7, 57, 176, 105, 173, 100, 192, 106, 231, 27, 176, 107, 150, 129, 64, 108, 208, 56, 48, 109, 118, 99, 64, 110, 176, 26, 48, 111, 86, 69, 64, 112, 143, 252, 48, 113, 54, 39, 64, 114, 111, 222, 48, 115, 22, 9, 64, 116, 79, 192, 48, 116, 255, 37, 192, 118, 56, 220, 176, 118, 223, 7, 192, 120, 24, 190, 176, 120, 190, 233, 192, 121, 248, 160, 176, 122, 158, 203, 192, 123, 216, 130, 176, 124, 126, 173, 192, 125, 184, 100, 176, 126, 94, 143, 192, 127, 152, 70, 176, 1, 2, 3, 1, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 90, 98, 0, 0, 255, 255, 101, 80, 0, 4, 255, 255, 115, 96, 1, 8, 255, 255, 115, 96, 1, 12, 255, 255, 101, 80, 0, 16, 255, 255, 115, 96, 1, 20, 255, 255, 115, 96, 0, 24, 255, 255, 129, 112, 1, 29, 255, 255, 115, 96, 0, 25, 76, 77, 84, 0, 78, 83, 84, 0, 78, 87, 84, 0, 78, 80, 84, 0, 66, 83, 84, 0, 66, 68, 84, 0, 65, 72, 83, 84, 0, 72, 68, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 72, 83, 84, 49, 48, 72, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Bahia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 107, 28, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 151, 255, 176, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 35, 88, 16, 176, 35, 226, 112, 32, 37, 55, 242, 176, 37, 212, 199, 32, 39, 33, 15, 48, 39, 189, 227, 160, 41, 0, 241, 48, 41, 148, 139, 32, 42, 234, 13, 176, 43, 107, 50, 160, 44, 192, 181, 48, 45, 102, 196, 32, 46, 160, 151, 48, 47, 70, 166, 32, 48, 128, 121, 48, 49, 29, 77, 160, 50, 87, 32, 176, 51, 6, 106, 32, 52, 56, 84, 48, 52, 248, 193, 32, 54, 32, 31, 48, 54, 207, 104, 160, 55, 246, 198, 176, 56, 184, 133, 32, 57, 223, 227, 48, 58, 143, 44, 160, 59, 200, 255, 176, 60, 111, 14, 160, 61, 196, 145, 48, 62, 78, 240, 160, 78, 154, 72, 176, 79, 73, 146, 32, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 219, 228, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Bahia_Banderas": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 7, 0, 0, 0, 24, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 203, 234, 113, 96, 216, 145, 180, 240, 0, 0, 112, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 245, 18, 144, 59, 182, 209, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 70, 15, 116, 144, 71, 36, 65, 128, 71, 248, 145, 16, 73, 4, 35, 128, 73, 216, 115, 16, 74, 228, 5, 128, 75, 184, 85, 16, 76, 205, 19, 240, 77, 152, 41, 0, 78, 172, 245, 240, 79, 120, 11, 0, 80, 140, 215, 240, 81, 97, 39, 128, 82, 108, 185, 240, 83, 65, 9, 128, 84, 76, 155, 240, 85, 32, 235, 128, 86, 44, 125, 240, 87, 0, 205, 128, 88, 21, 154, 112, 88, 224, 175, 128, 89, 245, 124, 112, 90, 192, 145, 128, 91, 213, 94, 112, 92, 169, 174, 0, 93, 181, 64, 112, 94, 137, 144, 0, 95, 149, 34, 112, 96, 105, 114, 0, 97, 126, 62, 240, 98, 73, 84, 0, 99, 94, 32, 240, 100, 41, 54, 0, 101, 62, 2, 240, 102, 18, 82, 128, 103, 29, 228, 240, 103, 242, 52, 128, 104, 253, 198, 240, 105, 210, 22, 128, 106, 221, 168, 240, 107, 177, 248, 128, 108, 198, 197, 112, 109, 145, 218, 128, 110, 166, 167, 112, 111, 113, 188, 128, 112, 134, 137, 112, 113, 90, 217, 0, 114, 102, 107, 112, 115, 58, 187, 0, 116, 70, 77, 112, 117, 26, 157, 0, 118, 47, 105, 240, 118, 250, 127, 0, 120, 15, 75, 240, 120, 218, 97, 0, 121, 239, 45, 240, 122, 186, 67, 0, 123, 207, 15, 240, 124, 163, 95, 128, 125, 174, 241, 240, 126, 131, 65, 128, 127, 142, 211, 240, 0, 1, 2, 1, 2, 1, 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 255, 255, 157, 84, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 143, 128, 0, 12, 255, 255, 171, 160, 1, 16, 255, 255, 185, 176, 1, 20, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 80, 83, 84, 0, 77, 68, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/America/Barbados": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 169, 121, 36, 229, 184, 133, 99, 229, 14, 0, 242, 224, 14, 148, 140, 208, 15, 151, 0, 224, 16, 116, 110, 208, 17, 118, 226, 224, 18, 84, 80, 208, 19, 95, 255, 96, 20, 48, 62, 80, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 255, 255, 200, 27, 0, 0, 255, 255, 200, 27, 0, 4, 255, 255, 213, 208, 1, 8, 255, 255, 199, 192, 0, 12, 76, 77, 84, 0, 66, 77, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Belem": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 116, 116, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 151, 255, 176, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 210, 140, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Belize": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 147, 94, 217, 176, 159, 159, 59, 224, 160, 69, 81, 216, 161, 127, 29, 224, 162, 46, 110, 88, 163, 94, 255, 224, 164, 14, 80, 88, 165, 62, 225, 224, 165, 238, 50, 88, 167, 39, 254, 96, 167, 206, 20, 88, 169, 7, 224, 96, 169, 173, 246, 88, 170, 231, 194, 96, 171, 151, 18, 216, 172, 199, 164, 96, 173, 118, 244, 216, 174, 167, 134, 96, 175, 86, 214, 216, 176, 135, 104, 96, 177, 54, 184, 216, 178, 112, 132, 224, 179, 22, 154, 216, 180, 80, 102, 224, 180, 246, 124, 216, 182, 48, 72, 224, 182, 223, 153, 88, 184, 16, 42, 224, 184, 191, 123, 88, 185, 240, 12, 224, 186, 159, 93, 88, 187, 217, 41, 96, 188, 127, 63, 88, 189, 185, 11, 96, 190, 95, 33, 88, 191, 152, 237, 96, 192, 63, 3, 88, 193, 120, 207, 96, 194, 40, 31, 216, 195, 88, 177, 96, 196, 8, 1, 216, 197, 56, 147, 96, 197, 231, 227, 216, 199, 33, 175, 224, 199, 199, 197, 216, 201, 1, 145, 224, 201, 167, 167, 216, 202, 225, 115, 224, 203, 144, 196, 88, 204, 193, 85, 224, 205, 112, 166, 88, 7, 98, 219, 96, 7, 185, 208, 80, 24, 97, 113, 96, 24, 171, 55, 80, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 255, 255, 173, 80, 0, 0, 255, 255, 178, 168, 1, 4, 255, 255, 171, 160, 0, 10, 255, 255, 185, 176, 1, 14, 76, 77, 84, 0, 45, 48, 53, 51, 48, 0, 67, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Blanc-Sablon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 133, 96, 159, 186, 221, 80, 203, 136, 226, 96, 210, 35, 244, 112, 210, 96, 237, 208, 2, 1, 2, 3, 4, 2, 255, 255, 202, 116, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 213, 208, 1, 16, 76, 77, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 65, 87, 84, 0, 65, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Boa_Vista": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 127, 224, 184, 15, 87, 240, 184, 253, 78, 176, 185, 241, 66, 64, 186, 222, 130, 48, 218, 56, 188, 64, 218, 236, 8, 64, 220, 25, 239, 192, 220, 185, 103, 48, 221, 251, 35, 64, 222, 155, 236, 48, 223, 221, 168, 64, 224, 84, 65, 48, 244, 152, 13, 192, 245, 5, 108, 48, 246, 192, 114, 64, 247, 14, 44, 176, 248, 81, 58, 64, 248, 199, 211, 48, 250, 10, 224, 192, 250, 169, 6, 176, 251, 236, 20, 64, 252, 139, 139, 176, 29, 201, 156, 64, 30, 120, 229, 176, 31, 160, 67, 192, 32, 51, 221, 176, 33, 129, 119, 64, 34, 11, 214, 176, 55, 246, 212, 192, 56, 184, 147, 48, 57, 223, 241, 64, 57, 233, 29, 176, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 199, 32, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/America/Bogota": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 152, 88, 85, 112, 42, 3, 115, 80, 43, 190, 93, 64, 127, 255, 255, 255, 1, 3, 2, 3, 3, 255, 255, 186, 144, 0, 0, 255, 255, 186, 144, 0, 4, 255, 255, 199, 192, 1, 8, 255, 255, 185, 176, 0, 12, 76, 77, 84, 0, 66, 77, 84, 0, 45, 48, 52, 0, 45, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/America/Boise": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 72, 160, 159, 187, 21, 144, 160, 134, 42, 160, 161, 154, 247, 144, 168, 70, 76, 32, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 178, 31, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 2, 1, 2, 1, 2, 5, 3, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 147, 15, 0, 0, 255, 255, 157, 144, 1, 4, 255, 255, 143, 128, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 157, 144, 0, 20, 255, 255, 171, 160, 1, 24, 76, 77, 84, 0, 80, 68, 84, 0, 80, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 77, 83, 84, 0, 77, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Buenos_Aires": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 241, 48, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 72, 250, 162, 176, 73, 188, 97, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 4, 5, 4, 5, 5, 255, 255, 201, 52, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Cambridge_Bay": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 11, 0, 0, 0, 37, 128, 0, 0, 0, 161, 242, 205, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 247, 47, 90, 112, 248, 40, 133, 240, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 230, 254, 0, 57, 251, 202, 240, 58, 4, 233, 80, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 0, 3, 1, 2, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 7, 6, 8, 7, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 0, 0, 0, 0, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 171, 160, 1, 8, 255, 255, 157, 144, 0, 12, 255, 255, 185, 176, 1, 16, 255, 255, 171, 160, 1, 21, 255, 255, 185, 176, 1, 25, 255, 255, 171, 160, 0, 29, 255, 255, 185, 176, 0, 33, 255, 255, 171, 160, 1, 21, 255, 255, 157, 144, 0, 12, 45, 48, 48, 0, 77, 87, 84, 0, 77, 80, 84, 0, 77, 83, 84, 0, 77, 68, 68, 84, 0, 77, 68, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Campo_Grande": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 122, 52, 184, 15, 87, 240, 184, 253, 78, 176, 185, 241, 66, 64, 186, 222, 130, 48, 218, 56, 188, 64, 218, 236, 8, 64, 220, 25, 239, 192, 220, 185, 103, 48, 221, 251, 35, 64, 222, 155, 236, 48, 223, 221, 168, 64, 224, 84, 65, 48, 244, 152, 13, 192, 245, 5, 108, 48, 246, 192, 114, 64, 247, 14, 44, 176, 248, 81, 58, 64, 248, 199, 211, 48, 250, 10, 224, 192, 250, 169, 6, 176, 251, 236, 20, 64, 252, 139, 139, 176, 29, 201, 156, 64, 30, 120, 229, 176, 31, 160, 67, 192, 32, 51, 221, 176, 33, 129, 119, 64, 34, 11, 214, 176, 35, 88, 30, 192, 35, 226, 126, 48, 37, 56, 0, 192, 37, 212, 213, 48, 39, 33, 29, 64, 39, 189, 241, 176, 41, 0, 255, 64, 41, 148, 153, 48, 42, 234, 27, 192, 43, 107, 64, 176, 44, 192, 195, 64, 45, 102, 210, 48, 46, 160, 165, 64, 47, 70, 180, 48, 48, 128, 135, 64, 49, 29, 91, 176, 50, 87, 46, 192, 51, 6, 120, 48, 52, 56, 98, 64, 52, 248, 207, 48, 54, 32, 45, 64, 54, 207, 118, 176, 55, 246, 212, 192, 56, 184, 147, 48, 57, 223, 241, 64, 58, 143, 58, 176, 59, 201, 13, 192, 60, 111, 28, 176, 61, 196, 159, 64, 62, 78, 254, 176, 63, 146, 12, 64, 64, 46, 224, 176, 65, 135, 6, 64, 66, 23, 253, 48, 67, 81, 208, 64, 67, 247, 223, 48, 69, 77, 97, 192, 69, 224, 251, 176, 71, 17, 148, 64, 71, 183, 163, 48, 72, 250, 176, 192, 73, 151, 133, 48, 74, 218, 146, 192, 75, 128, 161, 176, 76, 186, 116, 192, 77, 96, 131, 176, 78, 154, 86, 192, 79, 73, 160, 48, 80, 131, 115, 64, 81, 32, 71, 176, 82, 99, 85, 64, 83, 0, 41, 176, 84, 67, 55, 64, 84, 233, 70, 48, 86, 35, 25, 64, 86, 201, 40, 48, 88, 2, 251, 64, 88, 169, 10, 48, 89, 226, 221, 64, 90, 136, 236, 48, 91, 203, 249, 192, 92, 104, 206, 48, 93, 171, 219, 192, 94, 72, 176, 48, 95, 139, 189, 192, 96, 49, 204, 176, 97, 107, 159, 192, 98, 17, 174, 176, 99, 75, 129, 192, 99, 250, 203, 48, 101, 43, 99, 192, 101, 209, 114, 176, 103, 20, 128, 64, 103, 177, 84, 176, 104, 244, 98, 64, 105, 154, 113, 48, 106, 212, 68, 64, 107, 122, 83, 48, 108, 180, 38, 64, 109, 90, 53, 48, 110, 148, 8, 64, 111, 58, 23, 48, 112, 125, 36, 192, 113, 25, 249, 48, 114, 93, 6, 192, 114, 249, 219, 48, 116, 60, 232, 192, 116, 217, 189, 48, 118, 28, 202, 192, 118, 194, 217, 176, 119, 252, 172, 192, 120, 171, 246, 48, 121, 220, 142, 192, 122, 130, 157, 176, 123, 197, 171, 64, 124, 98, 127, 176, 125, 165, 141, 64, 126, 75, 156, 48, 127, 133, 111, 64, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 255, 255, 204, 204, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 60, 45, 48, 51, 62, 44, 77, 49, 48, 46, 51, 46, 48, 47, 48, 44, 77, 50, 46, 51, 46, 48, 47, 48, 10},
+
+ "zoneinfo/America/Cancun": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 218, 96, 22, 134, 213, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 53, 196, 0, 96, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 245, 4, 128, 59, 182, 194, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 70, 15, 102, 128, 71, 36, 51, 112, 71, 248, 131, 0, 73, 4, 21, 112, 73, 216, 101, 0, 74, 227, 247, 112, 75, 184, 71, 0, 76, 205, 19, 240, 77, 152, 41, 0, 78, 172, 245, 240, 79, 120, 11, 0, 80, 140, 215, 240, 81, 97, 39, 128, 82, 108, 185, 240, 83, 65, 9, 128, 84, 76, 155, 240, 84, 205, 221, 0, 0, 1, 3, 2, 3, 2, 3, 2, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 3, 255, 255, 174, 168, 0, 0, 255, 255, 171, 160, 0, 4, 255, 255, 199, 192, 1, 8, 255, 255, 185, 176, 0, 12, 255, 255, 185, 176, 1, 16, 76, 77, 84, 0, 67, 83, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/America/Caracas": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 147, 30, 44, 60, 246, 152, 236, 72, 71, 91, 146, 112, 87, 37, 169, 112, 127, 255, 255, 255, 1, 2, 3, 2, 3, 3, 255, 255, 193, 64, 0, 0, 255, 255, 193, 68, 0, 4, 255, 255, 192, 184, 0, 8, 255, 255, 199, 192, 0, 14, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 51, 48, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/America/Catamarca": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 187, 241, 48, 64, 213, 11, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 194, 84, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Cayenne": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 145, 244, 43, 144, 251, 195, 53, 192, 127, 255, 255, 255, 0, 1, 2, 2, 255, 255, 206, 240, 0, 0, 255, 255, 199, 192, 0, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Cayman": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 139, 244, 97, 232, 1, 2, 255, 255, 181, 112, 0, 0, 255, 255, 181, 24, 0, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 67, 77, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/America/Chicago": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 7, 0, 0, 0, 24, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 162, 203, 116, 0, 163, 131, 247, 240, 164, 69, 210, 128, 165, 99, 217, 240, 166, 83, 217, 0, 167, 21, 151, 112, 168, 51, 187, 0, 168, 254, 179, 240, 170, 19, 157, 0, 170, 222, 149, 240, 171, 243, 127, 0, 172, 190, 119, 240, 173, 211, 97, 0, 174, 158, 89, 240, 175, 179, 67, 0, 176, 126, 59, 240, 177, 156, 95, 128, 178, 103, 88, 112, 179, 124, 65, 128, 180, 71, 58, 112, 181, 92, 35, 128, 182, 39, 28, 112, 183, 60, 5, 128, 184, 6, 254, 112, 185, 27, 231, 128, 185, 230, 224, 112, 187, 5, 4, 0, 187, 198, 194, 112, 188, 228, 230, 0, 189, 175, 222, 240, 190, 196, 200, 0, 191, 143, 192, 240, 192, 90, 214, 0, 193, 176, 60, 112, 194, 132, 140, 0, 195, 79, 132, 240, 196, 100, 110, 0, 197, 47, 102, 240, 198, 77, 138, 128, 199, 15, 72, 240, 200, 45, 108, 128, 200, 248, 101, 112, 202, 13, 78, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 87, 60, 240, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 233, 23, 0, 240, 234, 7, 0, 0, 234, 246, 226, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 159, 195, 112, 241, 143, 194, 128, 242, 127, 165, 112, 243, 111, 164, 128, 244, 95, 135, 112, 245, 79, 134, 128, 246, 63, 105, 112, 247, 47, 104, 128, 248, 40, 133, 240, 249, 15, 74, 128, 250, 8, 103, 240, 250, 248, 103, 0, 251, 232, 73, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 173, 212, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 0, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 1, 20, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Chihuahua": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 245, 18, 144, 59, 182, 209, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 70, 15, 116, 144, 71, 36, 65, 128, 71, 248, 145, 16, 73, 4, 35, 128, 73, 216, 115, 16, 74, 228, 5, 128, 75, 184, 85, 16, 76, 205, 34, 0, 77, 152, 55, 16, 78, 173, 4, 0, 79, 120, 25, 16, 80, 140, 230, 0, 81, 97, 53, 144, 82, 108, 200, 0, 83, 65, 23, 144, 84, 76, 170, 0, 85, 32, 249, 144, 86, 44, 140, 0, 87, 0, 219, 144, 88, 21, 168, 128, 88, 224, 189, 144, 89, 245, 138, 128, 90, 192, 159, 144, 91, 213, 108, 128, 92, 169, 188, 16, 93, 181, 78, 128, 94, 137, 158, 16, 95, 149, 48, 128, 96, 105, 128, 16, 97, 126, 77, 0, 98, 73, 98, 16, 99, 94, 47, 0, 100, 41, 68, 16, 101, 62, 17, 0, 102, 18, 96, 144, 103, 29, 243, 0, 103, 242, 66, 144, 104, 253, 213, 0, 105, 210, 36, 144, 106, 221, 183, 0, 107, 178, 6, 144, 108, 198, 211, 128, 109, 145, 232, 144, 110, 166, 181, 128, 111, 113, 202, 144, 112, 134, 151, 128, 113, 90, 231, 16, 114, 102, 121, 128, 115, 58, 201, 16, 116, 70, 91, 128, 117, 26, 171, 16, 118, 47, 120, 0, 118, 250, 141, 16, 120, 15, 90, 0, 120, 218, 111, 16, 121, 239, 60, 0, 122, 186, 81, 16, 123, 207, 30, 0, 124, 163, 109, 144, 125, 175, 0, 0, 126, 131, 79, 144, 127, 142, 226, 0, 0, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 255, 255, 156, 140, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 157, 144, 0, 4, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 77, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/America/Coral_Harbour": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 158, 184, 161, 128, 159, 186, 249, 112, 200, 248, 87, 96, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 2, 1, 2, 1, 3, 4, 5, 255, 255, 170, 28, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/America/Cordoba": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 72, 250, 162, 176, 73, 188, 97, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 4, 5, 4, 5, 5, 255, 255, 195, 208, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Costa_Rica": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 163, 232, 22, 77, 17, 54, 73, 96, 17, 183, 110, 80, 19, 22, 43, 96, 19, 151, 80, 80, 39, 151, 224, 96, 40, 110, 182, 208, 41, 119, 194, 96, 41, 194, 217, 208, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 255, 255, 177, 51, 0, 0, 255, 255, 177, 51, 0, 4, 255, 255, 185, 176, 1, 9, 255, 255, 171, 160, 0, 13, 76, 77, 84, 0, 83, 74, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Creston": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 155, 214, 75, 112, 158, 249, 59, 0, 1, 2, 1, 255, 255, 146, 196, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 0, 4, 76, 77, 84, 0, 77, 83, 84, 0, 80, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 10},
+
+ "zoneinfo/America/Cuiaba": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 123, 148, 184, 15, 87, 240, 184, 253, 78, 176, 185, 241, 66, 64, 186, 222, 130, 48, 218, 56, 188, 64, 218, 236, 8, 64, 220, 25, 239, 192, 220, 185, 103, 48, 221, 251, 35, 64, 222, 155, 236, 48, 223, 221, 168, 64, 224, 84, 65, 48, 244, 152, 13, 192, 245, 5, 108, 48, 246, 192, 114, 64, 247, 14, 44, 176, 248, 81, 58, 64, 248, 199, 211, 48, 250, 10, 224, 192, 250, 169, 6, 176, 251, 236, 20, 64, 252, 139, 139, 176, 29, 201, 156, 64, 30, 120, 229, 176, 31, 160, 67, 192, 32, 51, 221, 176, 33, 129, 119, 64, 34, 11, 214, 176, 35, 88, 30, 192, 35, 226, 126, 48, 37, 56, 0, 192, 37, 212, 213, 48, 39, 33, 29, 64, 39, 189, 241, 176, 41, 0, 255, 64, 41, 148, 153, 48, 42, 234, 27, 192, 43, 107, 64, 176, 44, 192, 195, 64, 45, 102, 210, 48, 46, 160, 165, 64, 47, 70, 180, 48, 48, 128, 135, 64, 49, 29, 91, 176, 50, 87, 46, 192, 51, 6, 120, 48, 52, 56, 98, 64, 52, 248, 207, 48, 54, 32, 45, 64, 54, 207, 118, 176, 55, 246, 212, 192, 56, 184, 147, 48, 57, 223, 241, 64, 58, 143, 58, 176, 59, 201, 13, 192, 60, 111, 28, 176, 61, 196, 159, 64, 62, 78, 254, 176, 65, 135, 6, 64, 66, 23, 253, 48, 67, 81, 208, 64, 67, 247, 223, 48, 69, 77, 97, 192, 69, 224, 251, 176, 71, 17, 148, 64, 71, 183, 163, 48, 72, 250, 176, 192, 73, 151, 133, 48, 74, 218, 146, 192, 75, 128, 161, 176, 76, 186, 116, 192, 77, 96, 131, 176, 78, 154, 86, 192, 79, 73, 160, 48, 80, 131, 115, 64, 81, 32, 71, 176, 82, 99, 85, 64, 83, 0, 41, 176, 84, 67, 55, 64, 84, 233, 70, 48, 86, 35, 25, 64, 86, 201, 40, 48, 88, 2, 251, 64, 88, 169, 10, 48, 89, 226, 221, 64, 90, 136, 236, 48, 91, 203, 249, 192, 92, 104, 206, 48, 93, 171, 219, 192, 94, 72, 176, 48, 95, 139, 189, 192, 96, 49, 204, 176, 97, 107, 159, 192, 98, 17, 174, 176, 99, 75, 129, 192, 99, 250, 203, 48, 101, 43, 99, 192, 101, 209, 114, 176, 103, 20, 128, 64, 103, 177, 84, 176, 104, 244, 98, 64, 105, 154, 113, 48, 106, 212, 68, 64, 107, 122, 83, 48, 108, 180, 38, 64, 109, 90, 53, 48, 110, 148, 8, 64, 111, 58, 23, 48, 112, 125, 36, 192, 113, 25, 249, 48, 114, 93, 6, 192, 114, 249, 219, 48, 116, 60, 232, 192, 116, 217, 189, 48, 118, 28, 202, 192, 118, 194, 217, 176, 119, 252, 172, 192, 120, 171, 246, 48, 121, 220, 142, 192, 122, 130, 157, 176, 123, 197, 171, 64, 124, 98, 127, 176, 125, 165, 141, 64, 126, 75, 156, 48, 127, 133, 111, 64, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 255, 255, 203, 108, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 60, 45, 48, 51, 62, 44, 77, 49, 48, 46, 51, 46, 48, 47, 48, 44, 77, 50, 46, 51, 46, 48, 47, 48, 10},
+
+ "zoneinfo/America/Curacao": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 147, 30, 46, 35, 246, 152, 236, 72, 0, 1, 2, 255, 255, 191, 93, 0, 0, 255, 255, 192, 184, 0, 4, 255, 255, 199, 192, 0, 10, 76, 77, 84, 0, 45, 48, 52, 51, 48, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Danmarkshavn": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 155, 128, 73, 0, 19, 77, 124, 80, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 48, 231, 78, 48, 0, 1, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 255, 255, 238, 128, 0, 0, 255, 255, 213, 208, 0, 4, 255, 255, 213, 208, 0, 4, 255, 255, 227, 224, 1, 8, 255, 255, 227, 224, 1, 8, 0, 0, 0, 0, 0, 12, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 50, 0, 71, 77, 84, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/America/Dawson": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 8, 0, 0, 0, 33, 128, 0, 0, 0, 158, 184, 203, 176, 159, 187, 35, 160, 160, 208, 12, 176, 161, 162, 210, 128, 203, 137, 40, 176, 210, 35, 244, 112, 210, 97, 52, 32, 247, 47, 118, 144, 248, 40, 162, 16, 7, 48, 236, 144, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 2, 1, 2, 1, 2, 3, 4, 2, 5, 2, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 255, 255, 125, 76, 0, 0, 255, 255, 143, 128, 1, 4, 255, 255, 129, 112, 0, 8, 255, 255, 143, 128, 1, 12, 255, 255, 143, 128, 1, 16, 255, 255, 157, 144, 1, 20, 255, 255, 143, 128, 0, 25, 255, 255, 157, 144, 1, 29, 76, 77, 84, 0, 89, 68, 84, 0, 89, 83, 84, 0, 89, 87, 84, 0, 89, 80, 84, 0, 89, 68, 68, 84, 0, 80, 83, 84, 0, 80, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Dawson_Creek": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 158, 184, 189, 160, 159, 187, 21, 144, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 213, 85, 241, 32, 214, 32, 234, 16, 215, 53, 211, 32, 216, 0, 204, 16, 217, 21, 181, 32, 217, 224, 174, 16, 218, 254, 209, 160, 219, 192, 144, 16, 220, 222, 179, 160, 221, 169, 172, 144, 222, 190, 149, 160, 223, 137, 142, 144, 224, 158, 119, 160, 225, 105, 112, 144, 226, 126, 89, 160, 227, 73, 82, 144, 228, 94, 59, 160, 229, 41, 52, 144, 230, 71, 88, 32, 231, 18, 81, 16, 232, 39, 58, 32, 232, 242, 51, 16, 234, 7, 28, 32, 234, 210, 21, 16, 235, 230, 254, 32, 236, 177, 247, 16, 237, 198, 224, 32, 238, 145, 217, 16, 239, 175, 252, 160, 240, 113, 187, 16, 241, 143, 222, 160, 242, 127, 193, 144, 243, 111, 192, 160, 244, 95, 163, 144, 245, 79, 162, 160, 246, 63, 133, 144, 247, 47, 132, 160, 248, 40, 162, 16, 249, 15, 102, 160, 250, 8, 132, 16, 250, 248, 131, 32, 251, 232, 102, 16, 252, 216, 101, 32, 253, 200, 72, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 1, 240, 144, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 255, 255, 143, 72, 0, 0, 255, 255, 157, 144, 1, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 157, 144, 0, 20, 76, 77, 84, 0, 80, 68, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 77, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 77, 83, 84, 55, 10},
+
+ "zoneinfo/America/Denver": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 162, 101, 254, 144, 163, 132, 6, 0, 164, 69, 224, 144, 164, 143, 166, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 247, 47, 118, 144, 248, 40, 148, 0, 249, 15, 88, 144, 250, 8, 118, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 157, 148, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Detroit": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 133, 189, 34, 91, 153, 60, 148, 0, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 215, 53, 168, 240, 216, 0, 161, 224, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 0, 1, 2, 3, 4, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 255, 255, 178, 37, 0, 0, 255, 255, 171, 160, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 255, 255, 199, 192, 1, 20, 76, 77, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Dominica": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Edmonton": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 136, 222, 206, 224, 158, 184, 175, 144, 159, 187, 7, 128, 160, 152, 145, 144, 160, 210, 133, 128, 162, 138, 232, 144, 163, 132, 6, 0, 164, 106, 202, 144, 165, 53, 195, 128, 166, 83, 231, 16, 167, 21, 165, 128, 168, 51, 201, 16, 168, 254, 194, 0, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 213, 85, 227, 16, 214, 32, 220, 0, 250, 248, 117, 16, 251, 232, 88, 0, 254, 184, 57, 16, 255, 168, 28, 0, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 8, 32, 221, 144, 9, 16, 192, 128, 10, 0, 191, 144, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 149, 160, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Eirunepe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 136, 128, 184, 15, 102, 0, 184, 253, 92, 192, 185, 241, 80, 80, 186, 222, 144, 64, 218, 56, 202, 80, 218, 236, 22, 80, 220, 25, 253, 208, 220, 185, 117, 64, 221, 251, 49, 80, 222, 155, 250, 64, 223, 221, 182, 80, 224, 84, 79, 64, 244, 152, 27, 208, 245, 5, 122, 64, 246, 192, 128, 80, 247, 14, 58, 192, 248, 81, 72, 80, 248, 199, 225, 64, 250, 10, 238, 208, 250, 169, 20, 192, 251, 236, 34, 80, 252, 139, 153, 192, 29, 201, 170, 80, 30, 120, 243, 192, 31, 160, 81, 208, 32, 51, 235, 192, 33, 129, 133, 80, 34, 11, 228, 192, 44, 192, 209, 80, 45, 102, 224, 64, 72, 96, 127, 80, 82, 127, 4, 192, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 2, 255, 255, 190, 128, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 0, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 45, 48, 52, 0, 45, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/America/El_Salvador": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 163, 213, 166, 32, 32, 154, 220, 224, 33, 92, 155, 80, 34, 122, 190, 224, 35, 60, 125, 80, 0, 2, 1, 2, 1, 2, 255, 255, 172, 96, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Ensenada": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 165, 182, 246, 128, 169, 121, 79, 112, 175, 242, 124, 240, 182, 102, 100, 112, 183, 27, 16, 0, 184, 10, 242, 240, 203, 234, 141, 128, 210, 35, 244, 112, 210, 153, 186, 112, 215, 27, 89, 0, 216, 145, 180, 240, 226, 126, 75, 144, 227, 73, 82, 144, 228, 94, 45, 144, 229, 41, 52, 144, 230, 71, 74, 16, 231, 18, 81, 16, 232, 39, 44, 16, 232, 242, 51, 16, 234, 7, 14, 16, 234, 210, 21, 16, 235, 230, 240, 16, 236, 177, 247, 16, 237, 198, 210, 16, 238, 145, 217, 16, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 70, 15, 130, 160, 71, 36, 79, 144, 71, 248, 159, 32, 73, 4, 49, 144, 73, 216, 129, 32, 74, 228, 19, 144, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 0, 1, 2, 1, 2, 3, 2, 4, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 146, 76, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 157, 144, 1, 20, 76, 77, 84, 0, 77, 83, 84, 0, 80, 83, 84, 0, 80, 68, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Fort_Nelson": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 158, 184, 189, 160, 159, 187, 21, 144, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 213, 85, 241, 32, 214, 32, 234, 16, 215, 53, 211, 32, 216, 0, 204, 16, 217, 21, 181, 32, 217, 224, 174, 16, 218, 254, 209, 160, 219, 192, 144, 16, 220, 222, 179, 160, 221, 169, 172, 144, 222, 190, 149, 160, 223, 137, 142, 144, 224, 158, 119, 160, 225, 105, 112, 144, 226, 126, 89, 160, 227, 73, 82, 144, 228, 94, 59, 160, 229, 41, 52, 144, 230, 71, 88, 32, 231, 18, 81, 16, 232, 39, 58, 32, 232, 242, 51, 16, 234, 7, 28, 32, 234, 210, 21, 16, 235, 230, 254, 32, 236, 177, 247, 16, 237, 198, 224, 32, 238, 145, 217, 16, 239, 175, 252, 160, 240, 113, 187, 16, 241, 143, 222, 160, 242, 127, 193, 144, 243, 111, 192, 160, 244, 95, 163, 144, 245, 79, 162, 160, 246, 63, 133, 144, 247, 47, 132, 160, 248, 40, 162, 16, 249, 15, 102, 160, 250, 8, 132, 16, 250, 248, 131, 32, 251, 232, 102, 16, 252, 216, 101, 32, 253, 200, 72, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 8, 32, 235, 160, 9, 16, 206, 144, 10, 0, 205, 160, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 255, 255, 140, 249, 0, 0, 255, 255, 157, 144, 1, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 157, 144, 0, 20, 76, 77, 84, 0, 80, 68, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 77, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 77, 83, 84, 55, 10},
+
+ "zoneinfo/America/Fort_Wayne": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 202, 87, 34, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 232, 242, 22, 240, 234, 7, 0, 0, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 175, 58, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Fortaleza": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 107, 24, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 151, 255, 176, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 35, 88, 16, 176, 35, 226, 112, 32, 37, 55, 242, 176, 37, 212, 199, 32, 55, 246, 198, 176, 56, 184, 133, 32, 57, 223, 227, 48, 57, 242, 74, 32, 59, 200, 255, 176, 60, 111, 14, 160, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 219, 232, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Glace_Bay": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 128, 241, 168, 52, 158, 184, 133, 96, 159, 186, 221, 80, 203, 136, 226, 96, 210, 35, 244, 112, 210, 96, 237, 208, 224, 158, 63, 96, 225, 105, 56, 80, 4, 96, 239, 96, 5, 80, 210, 80, 6, 64, 209, 96, 7, 48, 180, 80, 8, 32, 179, 96, 9, 16, 150, 80, 10, 0, 149, 96, 10, 240, 120, 80, 11, 224, 119, 96, 12, 217, 148, 208, 13, 192, 89, 96, 14, 185, 118, 208, 15, 169, 117, 224, 16, 153, 88, 208, 17, 137, 87, 224, 18, 121, 58, 208, 19, 105, 57, 224, 20, 89, 28, 208, 21, 73, 27, 224, 22, 56, 254, 208, 23, 40, 253, 224, 24, 34, 27, 80, 25, 8, 223, 224, 26, 1, 253, 80, 26, 241, 252, 96, 27, 225, 223, 80, 28, 209, 222, 96, 29, 193, 193, 80, 30, 177, 192, 96, 31, 161, 163, 80, 32, 117, 242, 224, 33, 129, 133, 80, 34, 85, 212, 224, 35, 106, 161, 208, 36, 53, 182, 224, 37, 74, 131, 208, 38, 21, 152, 224, 39, 42, 101, 208, 39, 254, 181, 96, 41, 10, 71, 208, 41, 222, 151, 96, 42, 234, 41, 208, 43, 190, 121, 96, 44, 211, 70, 80, 45, 158, 91, 96, 46, 179, 40, 80, 47, 126, 61, 96, 48, 147, 10, 80, 49, 103, 89, 224, 50, 114, 236, 80, 51, 71, 59, 224, 52, 82, 206, 80, 53, 39, 29, 224, 54, 50, 176, 80, 55, 6, 255, 224, 56, 27, 204, 208, 56, 230, 225, 224, 57, 251, 174, 208, 58, 198, 195, 224, 59, 219, 144, 208, 60, 175, 224, 96, 61, 187, 114, 208, 62, 143, 194, 96, 63, 155, 84, 208, 64, 111, 164, 96, 65, 132, 113, 80, 66, 79, 134, 96, 67, 100, 83, 80, 68, 47, 104, 96, 69, 68, 53, 80, 69, 243, 154, 224, 71, 45, 81, 208, 71, 211, 124, 224, 73, 13, 51, 208, 73, 179, 94, 224, 74, 237, 21, 208, 75, 156, 123, 96, 76, 214, 50, 80, 77, 124, 93, 96, 78, 182, 20, 80, 79, 92, 63, 96, 80, 149, 246, 80, 81, 60, 33, 96, 82, 117, 216, 80, 83, 28, 3, 96, 84, 85, 186, 80, 84, 251, 229, 96, 86, 53, 156, 80, 86, 229, 1, 224, 88, 30, 184, 208, 88, 196, 227, 224, 89, 254, 154, 208, 90, 164, 197, 224, 91, 222, 124, 208, 92, 132, 167, 224, 93, 190, 94, 208, 94, 100, 137, 224, 95, 158, 64, 208, 96, 77, 166, 96, 97, 135, 93, 80, 98, 45, 136, 96, 99, 103, 63, 80, 100, 13, 106, 96, 101, 71, 33, 80, 101, 237, 76, 96, 103, 39, 3, 80, 103, 205, 46, 96, 105, 6, 229, 80, 105, 173, 16, 96, 106, 230, 199, 80, 107, 150, 44, 224, 108, 207, 227, 208, 109, 118, 14, 224, 110, 175, 197, 208, 111, 85, 240, 224, 112, 143, 167, 208, 113, 53, 210, 224, 114, 111, 137, 208, 115, 21, 180, 224, 116, 79, 107, 208, 116, 254, 209, 96, 118, 56, 136, 80, 118, 222, 179, 96, 120, 24, 106, 80, 120, 190, 149, 96, 121, 248, 76, 80, 122, 158, 119, 96, 123, 216, 46, 80, 124, 126, 89, 96, 125, 184, 16, 80, 126, 94, 59, 96, 127, 151, 242, 80, 0, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 199, 204, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 213, 208, 1, 16, 76, 77, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 65, 87, 84, 0, 65, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 65, 83, 84, 52, 65, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Godthab": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 155, 128, 104, 0, 19, 77, 124, 80, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 127, 255, 255, 255, 0, 1, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 255, 255, 207, 128, 0, 0, 255, 255, 213, 208, 0, 4, 255, 255, 213, 208, 0, 4, 255, 255, 227, 224, 1, 8, 255, 255, 227, 224, 1, 8, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 10, 60, 45, 48, 51, 62, 51, 60, 45, 48, 50, 62, 44, 77, 51, 46, 53, 46, 48, 47, 45, 50, 44, 77, 49, 48, 46, 53, 46, 48, 47, 45, 49, 10},
+
+ "zoneinfo/America/Goose_Bay": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 11, 0, 0, 0, 33, 128, 0, 0, 0, 158, 184, 126, 140, 159, 186, 214, 124, 190, 158, 77, 108, 192, 184, 49, 56, 193, 121, 239, 168, 194, 152, 19, 56, 195, 89, 209, 168, 196, 119, 245, 56, 197, 57, 179, 168, 198, 97, 17, 184, 199, 25, 149, 168, 200, 64, 243, 184, 201, 2, 178, 40, 202, 32, 213, 184, 202, 226, 148, 40, 204, 0, 183, 184, 210, 35, 244, 112, 210, 96, 230, 200, 211, 136, 68, 216, 212, 74, 3, 72, 213, 104, 38, 216, 214, 41, 229, 72, 215, 72, 8, 216, 216, 9, 199, 72, 217, 39, 234, 216, 217, 233, 169, 72, 219, 17, 7, 88, 219, 210, 197, 200, 220, 222, 116, 88, 221, 169, 109, 72, 222, 190, 86, 88, 223, 137, 79, 72, 224, 158, 56, 88, 225, 105, 49, 72, 226, 126, 26, 88, 227, 73, 19, 72, 228, 93, 252, 88, 229, 40, 245, 72, 230, 71, 24, 216, 231, 18, 17, 200, 232, 38, 250, 216, 232, 241, 243, 200, 234, 6, 220, 216, 234, 209, 213, 200, 235, 230, 190, 216, 236, 177, 183, 200, 237, 198, 160, 216, 238, 191, 190, 72, 239, 175, 189, 88, 240, 159, 160, 72, 241, 143, 159, 88, 242, 127, 130, 72, 243, 111, 129, 88, 244, 95, 100, 72, 245, 79, 99, 88, 246, 63, 70, 72, 247, 47, 69, 88, 248, 40, 98, 200, 248, 218, 107, 88, 249, 15, 46, 96, 250, 8, 75, 208, 250, 248, 74, 224, 251, 232, 45, 208, 252, 216, 44, 224, 253, 200, 15, 208, 254, 184, 14, 224, 255, 167, 241, 208, 0, 151, 240, 224, 1, 135, 211, 208, 2, 119, 210, 224, 3, 112, 240, 80, 4, 96, 239, 96, 5, 80, 210, 80, 6, 64, 209, 96, 7, 48, 180, 80, 8, 32, 179, 96, 9, 16, 150, 80, 10, 0, 149, 96, 10, 240, 120, 80, 11, 224, 119, 96, 12, 217, 148, 208, 13, 192, 89, 96, 14, 185, 118, 208, 15, 169, 117, 224, 16, 153, 88, 208, 17, 137, 87, 224, 18, 121, 58, 208, 19, 105, 57, 224, 20, 89, 28, 208, 21, 73, 27, 224, 22, 56, 254, 208, 23, 40, 253, 224, 24, 34, 27, 80, 25, 8, 223, 224, 26, 1, 253, 80, 26, 241, 252, 96, 27, 225, 223, 80, 28, 209, 222, 96, 29, 193, 193, 80, 30, 177, 192, 96, 31, 161, 163, 80, 32, 117, 214, 252, 33, 129, 105, 108, 34, 85, 184, 252, 35, 106, 119, 220, 36, 53, 154, 252, 37, 74, 103, 236, 38, 21, 124, 252, 39, 42, 73, 236, 39, 254, 153, 124, 41, 10, 43, 236, 41, 222, 123, 124, 42, 234, 13, 236, 43, 190, 93, 124, 44, 211, 42, 108, 45, 158, 63, 124, 46, 179, 12, 108, 47, 126, 33, 124, 48, 146, 238, 108, 49, 103, 61, 252, 50, 114, 208, 108, 51, 71, 31, 252, 52, 82, 178, 108, 53, 39, 1, 252, 54, 50, 148, 108, 55, 6, 227, 252, 56, 27, 176, 236, 56, 230, 197, 252, 57, 251, 146, 236, 58, 198, 167, 252, 59, 219, 116, 236, 60, 175, 196, 124, 61, 187, 86, 236, 62, 143, 166, 124, 63, 155, 56, 236, 64, 111, 136, 124, 65, 132, 85, 108, 66, 79, 106, 124, 67, 100, 55, 108, 68, 47, 76, 124, 69, 68, 25, 108, 69, 243, 126, 252, 71, 45, 53, 236, 71, 211, 96, 252, 73, 13, 23, 236, 73, 179, 66, 252, 74, 236, 249, 236, 75, 156, 95, 124, 76, 214, 22, 108, 77, 124, 65, 124, 78, 182, 20, 80, 79, 92, 63, 96, 80, 149, 246, 80, 81, 60, 33, 96, 82, 117, 216, 80, 83, 28, 3, 96, 84, 85, 186, 80, 84, 251, 229, 96, 86, 53, 156, 80, 86, 229, 1, 224, 88, 30, 184, 208, 88, 196, 227, 224, 89, 254, 154, 208, 90, 164, 197, 224, 91, 222, 124, 208, 92, 132, 167, 224, 93, 190, 94, 208, 94, 100, 137, 224, 95, 158, 64, 208, 96, 77, 166, 96, 97, 135, 93, 80, 98, 45, 136, 96, 99, 103, 63, 80, 100, 13, 106, 96, 101, 71, 33, 80, 101, 237, 76, 96, 103, 39, 3, 80, 103, 205, 46, 96, 105, 6, 229, 80, 105, 173, 16, 96, 106, 230, 199, 80, 107, 150, 44, 224, 108, 207, 227, 208, 109, 118, 14, 224, 110, 175, 197, 208, 111, 85, 240, 224, 112, 143, 167, 208, 113, 53, 210, 224, 114, 111, 137, 208, 115, 21, 180, 224, 116, 79, 107, 208, 116, 254, 209, 96, 118, 56, 136, 80, 118, 222, 179, 96, 120, 24, 106, 80, 120, 190, 149, 96, 121, 248, 76, 80, 122, 158, 119, 96, 123, 216, 46, 80, 124, 126, 89, 96, 125, 184, 16, 80, 126, 94, 59, 96, 127, 151, 242, 80, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 6, 5, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 9, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 199, 92, 0, 0, 255, 255, 206, 148, 0, 4, 255, 255, 220, 164, 1, 8, 255, 255, 206, 200, 0, 4, 255, 255, 220, 216, 1, 8, 255, 255, 220, 216, 1, 12, 255, 255, 220, 216, 1, 16, 255, 255, 213, 208, 1, 20, 255, 255, 199, 192, 0, 24, 255, 255, 227, 224, 1, 28, 255, 255, 213, 208, 1, 20, 76, 77, 84, 0, 78, 83, 84, 0, 78, 68, 84, 0, 78, 80, 84, 0, 78, 87, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 65, 68, 68, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 65, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Grand_Turk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 147, 15, 180, 255, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 189, 80, 0, 0, 255, 255, 184, 1, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 0, 16, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 75, 77, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Grenada": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Guadeloupe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Guatemala": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 159, 157, 234, 220, 7, 85, 172, 96, 7, 205, 150, 208, 25, 44, 120, 96, 25, 207, 228, 80, 39, 234, 238, 224, 40, 200, 92, 208, 68, 84, 82, 96, 69, 31, 75, 80, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 171, 36, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Guayaquil": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 182, 164, 66, 24, 43, 22, 252, 208, 43, 113, 230, 64, 127, 255, 255, 255, 1, 3, 2, 3, 3, 255, 255, 181, 40, 0, 0, 255, 255, 182, 104, 0, 4, 255, 255, 199, 192, 1, 8, 255, 255, 185, 176, 0, 12, 76, 77, 84, 0, 81, 77, 84, 0, 45, 48, 52, 0, 45, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/America/Guyana": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 152, 217, 121, 136, 10, 125, 180, 60, 39, 127, 251, 48, 127, 255, 255, 255, 0, 1, 2, 3, 3, 255, 255, 201, 120, 0, 0, 255, 255, 203, 68, 0, 4, 255, 255, 213, 208, 0, 10, 255, 255, 199, 192, 0, 14, 76, 77, 84, 0, 45, 48, 51, 52, 53, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/America/Halifax": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 128, 241, 171, 160, 154, 228, 222, 192, 155, 214, 19, 48, 158, 184, 133, 96, 159, 186, 221, 80, 162, 157, 23, 64, 163, 48, 177, 48, 164, 122, 86, 64, 165, 27, 31, 48, 166, 83, 160, 192, 166, 252, 82, 176, 168, 60, 189, 64, 168, 220, 52, 176, 170, 28, 159, 64, 170, 205, 58, 48, 171, 252, 129, 64, 172, 191, 145, 48, 173, 238, 216, 64, 174, 140, 254, 48, 175, 188, 69, 64, 176, 127, 85, 48, 177, 174, 156, 64, 178, 75, 112, 176, 179, 142, 126, 64, 180, 36, 187, 48, 181, 110, 96, 64, 182, 21, 192, 176, 183, 78, 66, 64, 184, 8, 23, 176, 185, 36, 233, 192, 185, 231, 249, 176, 187, 4, 203, 192, 187, 209, 22, 48, 189, 0, 93, 64, 189, 157, 49, 176, 190, 242, 180, 64, 191, 144, 218, 48, 192, 211, 231, 192, 193, 94, 71, 48, 194, 141, 142, 64, 195, 80, 158, 48, 196, 109, 112, 64, 197, 48, 128, 48, 198, 114, 60, 64, 199, 16, 98, 48, 200, 54, 110, 192, 200, 249, 126, 176, 202, 22, 80, 192, 202, 217, 96, 176, 203, 136, 226, 96, 210, 35, 244, 112, 210, 96, 237, 208, 211, 117, 214, 224, 212, 64, 207, 208, 213, 85, 184, 224, 214, 32, 177, 208, 215, 53, 154, 224, 216, 0, 147, 208, 217, 21, 124, 224, 217, 224, 117, 208, 220, 222, 123, 96, 221, 169, 116, 80, 222, 190, 93, 96, 223, 137, 86, 80, 224, 158, 63, 96, 225, 105, 56, 80, 226, 126, 33, 96, 227, 73, 26, 80, 230, 71, 31, 224, 231, 18, 24, 208, 232, 39, 1, 224, 232, 241, 250, 208, 234, 6, 227, 224, 234, 209, 220, 208, 235, 230, 197, 224, 236, 177, 190, 208, 241, 143, 166, 96, 242, 127, 137, 80, 243, 111, 136, 96, 244, 95, 107, 80, 245, 79, 106, 96, 246, 63, 77, 80, 247, 47, 76, 96, 248, 40, 105, 208, 249, 15, 46, 96, 250, 8, 75, 208, 250, 248, 74, 224, 251, 232, 45, 208, 252, 216, 44, 224, 253, 200, 15, 208, 254, 184, 14, 224, 255, 167, 241, 208, 0, 151, 240, 224, 1, 135, 211, 208, 2, 119, 210, 224, 3, 112, 240, 80, 4, 96, 239, 96, 5, 80, 210, 80, 6, 64, 209, 96, 7, 48, 180, 80, 8, 32, 179, 96, 9, 16, 150, 80, 10, 0, 149, 96, 10, 240, 120, 80, 11, 224, 119, 96, 12, 217, 148, 208, 13, 192, 89, 96, 14, 185, 118, 208, 15, 169, 117, 224, 16, 153, 88, 208, 17, 137, 87, 224, 18, 121, 58, 208, 19, 105, 57, 224, 20, 89, 28, 208, 21, 73, 27, 224, 22, 56, 254, 208, 23, 40, 253, 224, 24, 34, 27, 80, 25, 8, 223, 224, 26, 1, 253, 80, 26, 241, 252, 96, 27, 225, 223, 80, 28, 209, 222, 96, 29, 193, 193, 80, 30, 177, 192, 96, 31, 161, 163, 80, 32, 117, 242, 224, 33, 129, 133, 80, 34, 85, 212, 224, 35, 106, 161, 208, 36, 53, 182, 224, 37, 74, 131, 208, 38, 21, 152, 224, 39, 42, 101, 208, 39, 254, 181, 96, 41, 10, 71, 208, 41, 222, 151, 96, 42, 234, 41, 208, 43, 190, 121, 96, 44, 211, 70, 80, 45, 158, 91, 96, 46, 179, 40, 80, 47, 126, 61, 96, 48, 147, 10, 80, 49, 103, 89, 224, 50, 114, 236, 80, 51, 71, 59, 224, 52, 82, 206, 80, 53, 39, 29, 224, 54, 50, 176, 80, 55, 6, 255, 224, 56, 27, 204, 208, 56, 230, 225, 224, 57, 251, 174, 208, 58, 198, 195, 224, 59, 219, 144, 208, 60, 175, 224, 96, 61, 187, 114, 208, 62, 143, 194, 96, 63, 155, 84, 208, 64, 111, 164, 96, 65, 132, 113, 80, 66, 79, 134, 96, 67, 100, 83, 80, 68, 47, 104, 96, 69, 68, 53, 80, 69, 243, 154, 224, 71, 45, 81, 208, 71, 211, 124, 224, 73, 13, 51, 208, 73, 179, 94, 224, 74, 237, 21, 208, 75, 156, 123, 96, 76, 214, 50, 80, 77, 124, 93, 96, 78, 182, 20, 80, 79, 92, 63, 96, 80, 149, 246, 80, 81, 60, 33, 96, 82, 117, 216, 80, 83, 28, 3, 96, 84, 85, 186, 80, 84, 251, 229, 96, 86, 53, 156, 80, 86, 229, 1, 224, 88, 30, 184, 208, 88, 196, 227, 224, 89, 254, 154, 208, 90, 164, 197, 224, 91, 222, 124, 208, 92, 132, 167, 224, 93, 190, 94, 208, 94, 100, 137, 224, 95, 158, 64, 208, 96, 77, 166, 96, 97, 135, 93, 80, 98, 45, 136, 96, 99, 103, 63, 80, 100, 13, 106, 96, 101, 71, 33, 80, 101, 237, 76, 96, 103, 39, 3, 80, 103, 205, 46, 96, 105, 6, 229, 80, 105, 173, 16, 96, 106, 230, 199, 80, 107, 150, 44, 224, 108, 207, 227, 208, 109, 118, 14, 224, 110, 175, 197, 208, 111, 85, 240, 224, 112, 143, 167, 208, 113, 53, 210, 224, 114, 111, 137, 208, 115, 21, 180, 224, 116, 79, 107, 208, 116, 254, 209, 96, 118, 56, 136, 80, 118, 222, 179, 96, 120, 24, 106, 80, 120, 190, 149, 96, 121, 248, 76, 80, 122, 158, 119, 96, 123, 216, 46, 80, 124, 126, 89, 96, 125, 184, 16, 80, 126, 94, 59, 96, 127, 151, 242, 80, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 196, 96, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 213, 208, 1, 16, 76, 77, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 65, 87, 84, 0, 65, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 65, 83, 84, 52, 65, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Havana": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 172, 98, 194, 128, 177, 211, 148, 80, 178, 116, 93, 64, 200, 91, 102, 208, 200, 211, 81, 64, 202, 59, 72, 208, 202, 188, 109, 192, 204, 36, 101, 80, 204, 156, 79, 192, 209, 196, 11, 80, 210, 59, 245, 192, 211, 163, 237, 80, 212, 27, 215, 192, 247, 96, 5, 208, 247, 255, 125, 64, 249, 61, 68, 208, 249, 227, 83, 192, 250, 219, 59, 208, 251, 167, 134, 64, 252, 197, 169, 208, 253, 135, 104, 64, 254, 184, 0, 208, 255, 167, 227, 192, 0, 151, 226, 208, 1, 135, 197, 192, 2, 119, 196, 208, 3, 112, 226, 64, 4, 96, 225, 80, 5, 53, 20, 192, 6, 64, 195, 80, 7, 22, 72, 64, 8, 32, 165, 80, 8, 247, 123, 192, 10, 0, 135, 80, 10, 240, 106, 64, 11, 224, 105, 80, 12, 217, 134, 192, 13, 192, 75, 80, 14, 185, 104, 192, 15, 178, 162, 80, 16, 125, 155, 64, 17, 81, 234, 208, 18, 102, 183, 192, 19, 49, 204, 208, 20, 70, 153, 192, 21, 91, 130, 208, 22, 38, 123, 192, 23, 59, 100, 208, 24, 6, 93, 192, 25, 27, 70, 208, 25, 230, 63, 192, 26, 251, 40, 208, 27, 207, 92, 64, 28, 219, 10, 208, 29, 175, 62, 64, 30, 122, 83, 80, 31, 143, 32, 64, 32, 90, 53, 80, 33, 111, 2, 64, 34, 67, 81, 208, 35, 78, 228, 64, 36, 35, 51, 208, 37, 46, 198, 64, 38, 21, 138, 208, 39, 23, 226, 192, 39, 254, 167, 80, 40, 247, 210, 208, 41, 222, 137, 80, 42, 215, 180, 208, 43, 190, 107, 80, 44, 183, 150, 208, 45, 158, 77, 80, 46, 151, 120, 208, 47, 126, 47, 80, 48, 119, 90, 208, 49, 103, 75, 208, 50, 87, 60, 208, 51, 71, 45, 208, 52, 64, 89, 80, 53, 29, 213, 80, 54, 50, 176, 80, 54, 253, 183, 80, 56, 27, 204, 208, 56, 230, 211, 208, 57, 251, 174, 208, 58, 198, 181, 208, 59, 219, 144, 208, 60, 175, 210, 80, 61, 187, 114, 208, 62, 143, 180, 80, 63, 155, 84, 208, 64, 102, 91, 208, 69, 68, 53, 80, 69, 243, 140, 208, 71, 36, 23, 80, 71, 220, 169, 80, 73, 3, 249, 80, 73, 179, 80, 208, 74, 227, 219, 80, 75, 156, 109, 80, 76, 204, 247, 208, 77, 133, 137, 208, 78, 191, 78, 208, 79, 119, 224, 208, 80, 149, 246, 80, 81, 60, 19, 80, 82, 117, 216, 80, 83, 27, 245, 80, 84, 85, 186, 80, 84, 251, 215, 80, 86, 53, 156, 80, 86, 228, 243, 208, 88, 30, 184, 208, 88, 196, 213, 208, 89, 254, 154, 208, 90, 164, 183, 208, 91, 222, 124, 208, 92, 132, 153, 208, 93, 190, 94, 208, 94, 100, 123, 208, 95, 158, 64, 208, 96, 77, 152, 80, 97, 135, 93, 80, 98, 45, 122, 80, 99, 103, 63, 80, 100, 13, 92, 80, 101, 71, 33, 80, 101, 237, 62, 80, 103, 39, 3, 80, 103, 205, 32, 80, 105, 6, 229, 80, 105, 173, 2, 80, 106, 230, 199, 80, 107, 150, 30, 208, 108, 207, 227, 208, 109, 118, 0, 208, 110, 175, 197, 208, 111, 85, 226, 208, 112, 143, 167, 208, 113, 53, 196, 208, 114, 111, 137, 208, 115, 21, 166, 208, 116, 79, 107, 208, 116, 254, 195, 80, 118, 56, 136, 80, 118, 222, 165, 80, 120, 24, 106, 80, 120, 190, 135, 80, 121, 248, 76, 80, 122, 158, 105, 80, 123, 216, 46, 80, 124, 126, 75, 80, 125, 184, 16, 80, 126, 94, 45, 80, 127, 151, 242, 80, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 255, 255, 178, 200, 0, 0, 255, 255, 178, 192, 0, 4, 255, 255, 199, 192, 1, 8, 255, 255, 185, 176, 0, 12, 255, 255, 185, 176, 0, 12, 255, 255, 199, 192, 1, 8, 76, 77, 84, 0, 72, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 53, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 47, 48, 44, 77, 49, 49, 46, 49, 46, 48, 47, 49, 10},
+
+ "zoneinfo/America/Hermosillo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 203, 234, 113, 96, 216, 145, 180, 240, 0, 0, 112, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 0, 1, 2, 1, 2, 1, 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 255, 255, 151, 248, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 143, 128, 0, 12, 255, 255, 171, 160, 1, 16, 255, 255, 157, 144, 0, 4, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 80, 83, 84, 0, 77, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 10},
+
+ "zoneinfo/America/Indiana/Indianapolis": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 202, 87, 34, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 232, 242, 22, 240, 234, 7, 0, 0, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 175, 58, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indiana/Knox": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 7, 0, 0, 0, 24, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 87, 60, 240, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 159, 195, 112, 241, 143, 194, 128, 244, 95, 135, 112, 250, 248, 103, 0, 251, 232, 73, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 68, 47, 118, 112, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 174, 202, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indiana/Marengo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 220, 222, 151, 128, 221, 169, 144, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 41, 24, 112, 230, 71, 60, 0, 231, 18, 52, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 177, 218, 240, 237, 198, 196, 0, 238, 145, 188, 240, 239, 175, 224, 128, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 178, 112, 9, 173, 148, 240, 10, 240, 134, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 175, 13, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indiana/Petersburg": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 228, 103, 61, 224, 229, 41, 24, 112, 230, 71, 60, 0, 231, 18, 52, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 177, 218, 240, 237, 198, 196, 0, 238, 145, 188, 240, 239, 175, 224, 128, 240, 159, 195, 112, 241, 143, 194, 128, 242, 127, 165, 112, 243, 111, 164, 128, 244, 95, 135, 112, 245, 79, 134, 128, 246, 63, 105, 112, 247, 47, 104, 128, 250, 8, 103, 240, 250, 248, 103, 0, 251, 232, 73, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 68, 47, 118, 112, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 1, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 174, 45, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indiana/Tell_City": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 9, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 103, 61, 224, 229, 41, 24, 112, 230, 71, 60, 0, 231, 18, 52, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 177, 218, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 113, 158, 240, 241, 143, 194, 128, 242, 127, 165, 112, 243, 111, 164, 128, 244, 95, 135, 112, 245, 79, 134, 128, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 68, 47, 118, 112, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 174, 169, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indiana/Vevay": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 226, 126, 61, 128, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 3, 4, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 176, 64, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indiana/Vincennes": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 103, 61, 224, 229, 41, 24, 112, 230, 71, 60, 0, 231, 18, 52, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 177, 218, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 113, 158, 240, 241, 143, 194, 128, 242, 127, 165, 112, 243, 111, 164, 128, 244, 95, 135, 112, 245, 79, 134, 128, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 68, 47, 118, 112, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 1, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 173, 241, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indiana/Winamac": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 87, 60, 240, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 177, 218, 240, 237, 198, 196, 0, 238, 145, 188, 240, 239, 175, 224, 128, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 68, 47, 118, 112, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 1, 2, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 174, 207, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Indianapolis": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 202, 87, 34, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 232, 242, 22, 240, 234, 7, 0, 0, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 175, 58, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Inuvik": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 5, 0, 0, 0, 21, 128, 0, 0, 0, 224, 6, 78, 128, 247, 47, 104, 128, 248, 40, 148, 0, 17, 137, 144, 32, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 0, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 0, 0, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 143, 128, 0, 9, 255, 255, 157, 144, 0, 13, 255, 255, 171, 160, 1, 17, 45, 48, 48, 0, 80, 68, 68, 84, 0, 80, 83, 84, 0, 77, 83, 84, 0, 77, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Iqaluit": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 10, 0, 0, 0, 33, 128, 0, 0, 0, 204, 108, 161, 128, 210, 35, 244, 112, 210, 96, 251, 224, 247, 47, 62, 80, 248, 40, 105, 208, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 0, 5, 1, 2, 3, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 6, 7, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 199, 192, 1, 17, 255, 255, 199, 192, 1, 21, 255, 255, 171, 160, 0, 25, 255, 255, 185, 176, 1, 29, 255, 255, 199, 192, 1, 17, 255, 255, 185, 176, 0, 8, 45, 48, 48, 0, 69, 80, 84, 0, 69, 83, 84, 0, 69, 68, 68, 84, 0, 69, 68, 84, 0, 69, 87, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Jamaica": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 147, 15, 180, 255, 7, 141, 25, 112, 9, 16, 164, 96, 9, 173, 148, 240, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 184, 1, 0, 0, 255, 255, 184, 1, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 76, 77, 84, 0, 75, 77, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/America/Jujuy": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 42, 87, 192, 39, 226, 219, 176, 40, 238, 138, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 2, 3, 2, 4, 5, 4, 5, 3, 5, 4, 5, 5, 255, 255, 194, 200, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Juneau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 9, 0, 0, 0, 38, 128, 0, 0, 0, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 7, 141, 67, 160, 9, 16, 206, 144, 9, 173, 191, 32, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 99, 32, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 43, 20, 16, 26, 242, 66, 176, 27, 226, 37, 160, 28, 210, 36, 176, 29, 194, 7, 160, 30, 178, 6, 176, 31, 161, 233, 160, 32, 118, 57, 48, 33, 129, 203, 160, 34, 86, 27, 48, 35, 106, 232, 32, 36, 53, 253, 48, 37, 74, 202, 32, 38, 21, 223, 48, 39, 42, 172, 32, 39, 254, 251, 176, 41, 10, 142, 32, 41, 222, 221, 176, 42, 234, 112, 32, 43, 190, 191, 176, 44, 211, 140, 160, 45, 158, 161, 176, 46, 179, 110, 160, 47, 126, 131, 176, 48, 147, 80, 160, 49, 103, 160, 48, 50, 115, 50, 160, 51, 71, 130, 48, 52, 83, 20, 160, 53, 39, 100, 48, 54, 50, 246, 160, 55, 7, 70, 48, 56, 28, 19, 32, 56, 231, 40, 48, 57, 251, 245, 32, 58, 199, 10, 48, 59, 219, 215, 32, 60, 176, 38, 176, 61, 187, 185, 32, 62, 144, 8, 176, 63, 155, 155, 32, 64, 111, 234, 176, 65, 132, 183, 160, 66, 79, 204, 176, 67, 100, 153, 160, 68, 47, 174, 176, 69, 68, 123, 160, 69, 243, 225, 48, 71, 45, 152, 32, 71, 211, 195, 48, 73, 13, 122, 32, 73, 179, 165, 48, 74, 237, 92, 32, 75, 156, 193, 176, 76, 214, 120, 160, 77, 124, 163, 176, 78, 182, 90, 160, 79, 92, 133, 176, 80, 150, 60, 160, 81, 60, 103, 176, 82, 118, 30, 160, 83, 28, 73, 176, 84, 86, 0, 160, 84, 252, 43, 176, 86, 53, 226, 160, 86, 229, 72, 48, 88, 30, 255, 32, 88, 197, 42, 48, 89, 254, 225, 32, 90, 165, 12, 48, 91, 222, 195, 32, 92, 132, 238, 48, 93, 190, 165, 32, 94, 100, 208, 48, 95, 158, 135, 32, 96, 77, 236, 176, 97, 135, 163, 160, 98, 45, 206, 176, 99, 103, 133, 160, 100, 13, 176, 176, 101, 71, 103, 160, 101, 237, 146, 176, 103, 39, 73, 160, 103, 205, 116, 176, 105, 7, 43, 160, 105, 173, 86, 176, 106, 231, 13, 160, 107, 150, 115, 48, 108, 208, 42, 32, 109, 118, 85, 48, 110, 176, 12, 32, 111, 86, 55, 48, 112, 143, 238, 32, 113, 54, 25, 48, 114, 111, 208, 32, 115, 21, 251, 48, 116, 79, 178, 32, 116, 255, 23, 176, 118, 56, 206, 160, 118, 222, 249, 176, 120, 24, 176, 160, 120, 190, 219, 176, 121, 248, 146, 160, 122, 158, 189, 176, 123, 216, 116, 160, 124, 126, 159, 176, 125, 184, 86, 160, 126, 94, 129, 176, 127, 152, 56, 160, 1, 2, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 4, 1, 4, 1, 4, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 129, 251, 0, 0, 255, 255, 143, 128, 0, 4, 255, 255, 157, 144, 1, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 143, 128, 1, 20, 255, 255, 129, 112, 0, 24, 255, 255, 143, 128, 1, 28, 255, 255, 129, 112, 0, 33, 76, 77, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 80, 68, 84, 0, 89, 68, 84, 0, 89, 83, 84, 0, 65, 75, 68, 84, 0, 65, 75, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 65, 75, 83, 84, 57, 65, 75, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Kentucky/Louisville": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 164, 115, 247, 0, 165, 22, 17, 112, 202, 13, 78, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 210, 219, 151, 96, 211, 164, 9, 112, 213, 85, 213, 0, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 41, 24, 112, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 233, 23, 0, 240, 234, 7, 0, 0, 234, 246, 226, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 30, 144, 112, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 178, 112, 9, 173, 148, 240, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 175, 154, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Kentucky/Monticello": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 176, 116, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 199, 192, 1, 20, 255, 255, 185, 176, 0, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Knox_IN": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 7, 0, 0, 0, 24, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 87, 60, 240, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 159, 195, 112, 241, 143, 194, 128, 244, 95, 135, 112, 250, 248, 103, 0, 251, 232, 73, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 68, 47, 118, 112, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 174, 202, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Kralendijk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 147, 30, 46, 35, 246, 152, 236, 72, 0, 1, 2, 255, 255, 191, 93, 0, 0, 255, 255, 192, 184, 0, 4, 255, 255, 199, 192, 0, 10, 76, 77, 84, 0, 45, 48, 52, 51, 48, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/La_Paz": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 184, 30, 150, 228, 184, 238, 213, 212, 127, 255, 255, 255, 1, 2, 3, 3, 255, 255, 192, 28, 0, 0, 255, 255, 192, 28, 0, 4, 255, 255, 206, 44, 1, 8, 255, 255, 199, 192, 0, 13, 76, 77, 84, 0, 67, 77, 84, 0, 66, 79, 83, 84, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/America/Lima": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 140, 116, 64, 212, 195, 207, 74, 80, 196, 69, 227, 64, 197, 47, 74, 208, 198, 31, 45, 192, 199, 15, 44, 208, 199, 255, 15, 192, 30, 24, 196, 80, 30, 143, 93, 64, 31, 249, 247, 208, 32, 112, 144, 192, 37, 158, 227, 208, 38, 21, 124, 192, 45, 37, 3, 80, 45, 155, 156, 64, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 255, 255, 183, 196, 0, 0, 255, 255, 183, 172, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 45, 48, 52, 0, 45, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/America/Los_Angeles": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 72, 160, 159, 187, 21, 144, 160, 134, 42, 160, 161, 154, 247, 144, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 214, 254, 116, 92, 216, 128, 173, 144, 218, 254, 195, 144, 219, 192, 144, 16, 220, 222, 165, 144, 221, 169, 172, 144, 222, 190, 135, 144, 223, 137, 142, 144, 224, 158, 105, 144, 225, 105, 112, 144, 226, 126, 75, 144, 227, 73, 82, 144, 228, 94, 45, 144, 229, 41, 52, 144, 230, 71, 74, 16, 231, 18, 81, 16, 232, 39, 44, 16, 232, 242, 51, 16, 234, 7, 14, 16, 234, 210, 21, 16, 235, 230, 240, 16, 236, 177, 247, 16, 237, 198, 210, 16, 238, 145, 217, 16, 239, 175, 238, 144, 240, 113, 187, 16, 241, 143, 208, 144, 242, 127, 193, 144, 243, 111, 178, 144, 244, 95, 163, 144, 245, 79, 148, 144, 246, 63, 133, 144, 247, 47, 118, 144, 248, 40, 162, 16, 249, 15, 88, 144, 250, 8, 132, 16, 250, 248, 131, 32, 251, 232, 102, 16, 252, 216, 101, 32, 253, 200, 72, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 7, 141, 67, 160, 9, 16, 206, 144, 9, 173, 191, 32, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 145, 38, 0, 0, 255, 255, 157, 144, 1, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 76, 77, 84, 0, 80, 68, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Louisville": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 164, 115, 247, 0, 165, 22, 17, 112, 202, 13, 78, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 210, 219, 151, 96, 211, 164, 9, 112, 213, 85, 213, 0, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 41, 24, 112, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 233, 23, 0, 240, 234, 7, 0, 0, 234, 246, 226, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 30, 144, 112, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 178, 112, 9, 173, 148, 240, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 175, 154, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Lower_Princes": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 147, 30, 46, 35, 246, 152, 236, 72, 0, 1, 2, 255, 255, 191, 93, 0, 0, 255, 255, 192, 184, 0, 4, 255, 255, 199, 192, 0, 10, 76, 77, 84, 0, 45, 48, 52, 51, 48, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Maceio": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 104, 124, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 151, 255, 176, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 35, 88, 16, 176, 35, 226, 112, 32, 37, 55, 242, 176, 37, 212, 199, 32, 48, 128, 121, 48, 49, 29, 77, 160, 55, 246, 198, 176, 56, 184, 133, 32, 57, 223, 227, 48, 57, 242, 74, 32, 59, 200, 255, 176, 60, 111, 14, 160, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 222, 132, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Managua": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 189, 45, 72, 232, 6, 67, 116, 96, 9, 164, 62, 80, 17, 81, 248, 224, 17, 212, 111, 80, 19, 49, 218, 224, 19, 180, 81, 80, 41, 97, 145, 32, 42, 193, 75, 80, 43, 67, 221, 224, 50, 201, 239, 80, 66, 88, 192, 224, 67, 63, 105, 80, 68, 84, 110, 128, 69, 31, 89, 96, 1, 2, 3, 2, 4, 2, 4, 2, 3, 2, 3, 2, 4, 2, 4, 2, 255, 255, 175, 28, 0, 0, 255, 255, 175, 24, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 0, 12, 255, 255, 185, 176, 1, 16, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 77, 77, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Manaus": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 127, 68, 184, 15, 87, 240, 184, 253, 78, 176, 185, 241, 66, 64, 186, 222, 130, 48, 218, 56, 188, 64, 218, 236, 8, 64, 220, 25, 239, 192, 220, 185, 103, 48, 221, 251, 35, 64, 222, 155, 236, 48, 223, 221, 168, 64, 224, 84, 65, 48, 244, 152, 13, 192, 245, 5, 108, 48, 246, 192, 114, 64, 247, 14, 44, 176, 248, 81, 58, 64, 248, 199, 211, 48, 250, 10, 224, 192, 250, 169, 6, 176, 251, 236, 20, 64, 252, 139, 139, 176, 29, 201, 156, 64, 30, 120, 229, 176, 31, 160, 67, 192, 32, 51, 221, 176, 33, 129, 119, 64, 34, 11, 214, 176, 44, 192, 195, 64, 45, 102, 210, 48, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 199, 188, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/America/Marigot": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Martinique": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 145, 163, 200, 68, 19, 77, 110, 64, 20, 52, 22, 176, 1, 2, 3, 2, 255, 255, 198, 188, 0, 0, 255, 255, 198, 188, 0, 4, 255, 255, 199, 192, 0, 9, 255, 255, 213, 208, 1, 13, 76, 77, 84, 0, 70, 70, 77, 84, 0, 65, 83, 84, 0, 65, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Matamoros": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 165, 182, 218, 96, 34, 85, 241, 0, 35, 106, 189, 240, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 245, 4, 128, 59, 182, 194, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 70, 15, 102, 128, 71, 36, 51, 112, 71, 248, 131, 0, 73, 4, 21, 112, 73, 216, 101, 0, 74, 227, 247, 112, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 255, 255, 162, 64, 0, 0, 255, 255, 171, 160, 0, 4, 255, 255, 185, 176, 1, 8, 76, 77, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Mazatlan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 203, 234, 113, 96, 216, 145, 180, 240, 0, 0, 112, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 245, 18, 144, 59, 182, 209, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 70, 15, 116, 144, 71, 36, 65, 128, 71, 248, 145, 16, 73, 4, 35, 128, 73, 216, 115, 16, 74, 228, 5, 128, 75, 184, 85, 16, 76, 205, 34, 0, 77, 152, 55, 16, 78, 173, 4, 0, 79, 120, 25, 16, 80, 140, 230, 0, 81, 97, 53, 144, 82, 108, 200, 0, 83, 65, 23, 144, 84, 76, 170, 0, 85, 32, 249, 144, 86, 44, 140, 0, 87, 0, 219, 144, 88, 21, 168, 128, 88, 224, 189, 144, 89, 245, 138, 128, 90, 192, 159, 144, 91, 213, 108, 128, 92, 169, 188, 16, 93, 181, 78, 128, 94, 137, 158, 16, 95, 149, 48, 128, 96, 105, 128, 16, 97, 126, 77, 0, 98, 73, 98, 16, 99, 94, 47, 0, 100, 41, 68, 16, 101, 62, 17, 0, 102, 18, 96, 144, 103, 29, 243, 0, 103, 242, 66, 144, 104, 253, 213, 0, 105, 210, 36, 144, 106, 221, 183, 0, 107, 178, 6, 144, 108, 198, 211, 128, 109, 145, 232, 144, 110, 166, 181, 128, 111, 113, 202, 144, 112, 134, 151, 128, 113, 90, 231, 16, 114, 102, 121, 128, 115, 58, 201, 16, 116, 70, 91, 128, 117, 26, 171, 16, 118, 47, 120, 0, 118, 250, 141, 16, 120, 15, 90, 0, 120, 218, 111, 16, 121, 239, 60, 0, 122, 186, 81, 16, 123, 207, 30, 0, 124, 163, 109, 144, 125, 175, 0, 0, 126, 131, 79, 144, 127, 142, 226, 0, 0, 1, 2, 1, 2, 1, 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 255, 255, 156, 60, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 143, 128, 0, 12, 255, 255, 171, 160, 1, 16, 255, 255, 157, 144, 0, 4, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 80, 83, 84, 0, 77, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/America/Mendoza": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 25, 52, 64, 39, 205, 195, 176, 40, 250, 103, 192, 41, 176, 72, 176, 42, 224, 225, 64, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 64, 176, 19, 176, 65, 86, 62, 192, 71, 119, 9, 176, 71, 220, 127, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 2, 3, 2, 3, 2, 4, 5, 3, 5, 2, 5, 4, 5, 5, 255, 255, 191, 124, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Menominee": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 7, 0, 0, 0, 24, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 249, 15, 74, 128, 250, 8, 103, 240, 254, 184, 43, 0, 6, 64, 223, 112, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 173, 221, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Merida": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 5, 0, 0, 0, 16, 128, 0, 0, 0, 165, 182, 218, 96, 22, 134, 213, 96, 24, 76, 75, 80, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 245, 4, 128, 59, 182, 194, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 70, 15, 102, 128, 71, 36, 51, 112, 71, 248, 131, 0, 73, 4, 21, 112, 73, 216, 101, 0, 74, 227, 247, 112, 75, 184, 71, 0, 76, 205, 19, 240, 77, 152, 41, 0, 78, 172, 245, 240, 79, 120, 11, 0, 80, 140, 215, 240, 81, 97, 39, 128, 82, 108, 185, 240, 83, 65, 9, 128, 84, 76, 155, 240, 85, 32, 235, 128, 86, 44, 125, 240, 87, 0, 205, 128, 88, 21, 154, 112, 88, 224, 175, 128, 89, 245, 124, 112, 90, 192, 145, 128, 91, 213, 94, 112, 92, 169, 174, 0, 93, 181, 64, 112, 94, 137, 144, 0, 95, 149, 34, 112, 96, 105, 114, 0, 97, 126, 62, 240, 98, 73, 84, 0, 99, 94, 32, 240, 100, 41, 54, 0, 101, 62, 2, 240, 102, 18, 82, 128, 103, 29, 228, 240, 103, 242, 52, 128, 104, 253, 198, 240, 105, 210, 22, 128, 106, 221, 168, 240, 107, 177, 248, 128, 108, 198, 197, 112, 109, 145, 218, 128, 110, 166, 167, 112, 111, 113, 188, 128, 112, 134, 137, 112, 113, 90, 217, 0, 114, 102, 107, 112, 115, 58, 187, 0, 116, 70, 77, 112, 117, 26, 157, 0, 118, 47, 105, 240, 118, 250, 127, 0, 120, 15, 75, 240, 120, 218, 97, 0, 121, 239, 45, 240, 122, 186, 67, 0, 123, 207, 15, 240, 124, 163, 95, 128, 125, 174, 241, 240, 126, 131, 65, 128, 127, 142, 211, 240, 0, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 255, 255, 171, 252, 0, 0, 255, 255, 171, 160, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 171, 160, 0, 4, 76, 77, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/America/Metlakatla": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 7, 0, 0, 0, 30, 128, 0, 0, 0, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 7, 141, 67, 160, 9, 16, 206, 144, 9, 173, 191, 32, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 86, 53, 226, 160, 86, 229, 72, 48, 88, 30, 255, 32, 88, 197, 42, 48, 89, 254, 225, 32, 90, 165, 12, 48, 91, 222, 195, 32, 92, 132, 238, 48, 93, 190, 165, 32, 94, 100, 208, 48, 95, 158, 135, 32, 96, 77, 236, 176, 97, 135, 163, 160, 98, 45, 206, 176, 99, 103, 133, 160, 100, 13, 176, 176, 101, 71, 103, 160, 101, 237, 146, 176, 103, 39, 73, 160, 103, 205, 116, 176, 105, 7, 43, 160, 105, 173, 86, 176, 106, 231, 13, 160, 107, 150, 115, 48, 108, 208, 42, 32, 109, 118, 85, 48, 110, 176, 12, 32, 111, 86, 55, 48, 112, 143, 238, 32, 113, 54, 25, 48, 114, 111, 208, 32, 115, 21, 251, 48, 116, 79, 178, 32, 116, 255, 23, 176, 118, 56, 206, 160, 118, 222, 249, 176, 120, 24, 176, 160, 120, 190, 219, 176, 121, 248, 146, 160, 122, 158, 189, 176, 123, 216, 116, 160, 124, 126, 159, 176, 125, 184, 86, 160, 126, 94, 129, 176, 127, 152, 56, 160, 1, 2, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 132, 166, 0, 0, 255, 255, 143, 128, 0, 4, 255, 255, 157, 144, 1, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 129, 112, 0, 20, 255, 255, 143, 128, 1, 25, 76, 77, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 80, 68, 84, 0, 65, 75, 83, 84, 0, 65, 75, 68, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 65, 75, 83, 84, 57, 65, 75, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Mexico_City": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 197, 222, 176, 96, 198, 151, 52, 80, 201, 85, 241, 224, 201, 234, 221, 80, 207, 2, 198, 224, 207, 183, 86, 80, 218, 153, 21, 224, 219, 118, 131, 208, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 245, 4, 128, 59, 182, 194, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 70, 15, 102, 128, 71, 36, 51, 112, 71, 248, 131, 0, 73, 4, 21, 112, 73, 216, 101, 0, 74, 227, 247, 112, 75, 184, 71, 0, 76, 205, 19, 240, 77, 152, 41, 0, 78, 172, 245, 240, 79, 120, 11, 0, 80, 140, 215, 240, 81, 97, 39, 128, 82, 108, 185, 240, 83, 65, 9, 128, 84, 76, 155, 240, 85, 32, 235, 128, 86, 44, 125, 240, 87, 0, 205, 128, 88, 21, 154, 112, 88, 224, 175, 128, 89, 245, 124, 112, 90, 192, 145, 128, 91, 213, 94, 112, 92, 169, 174, 0, 93, 181, 64, 112, 94, 137, 144, 0, 95, 149, 34, 112, 96, 105, 114, 0, 97, 126, 62, 240, 98, 73, 84, 0, 99, 94, 32, 240, 100, 41, 54, 0, 101, 62, 2, 240, 102, 18, 82, 128, 103, 29, 228, 240, 103, 242, 52, 128, 104, 253, 198, 240, 105, 210, 22, 128, 106, 221, 168, 240, 107, 177, 248, 128, 108, 198, 197, 112, 109, 145, 218, 128, 110, 166, 167, 112, 111, 113, 188, 128, 112, 134, 137, 112, 113, 90, 217, 0, 114, 102, 107, 112, 115, 58, 187, 0, 116, 70, 77, 112, 117, 26, 157, 0, 118, 47, 105, 240, 118, 250, 127, 0, 120, 15, 75, 240, 120, 218, 97, 0, 121, 239, 45, 240, 122, 186, 67, 0, 123, 207, 15, 240, 124, 163, 95, 128, 125, 174, 241, 240, 126, 131, 65, 128, 127, 142, 211, 240, 0, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 163, 12, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 67, 87, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/America/Miquelon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 145, 182, 56, 168, 19, 110, 99, 192, 32, 117, 228, 208, 33, 129, 119, 64, 34, 85, 198, 208, 35, 106, 147, 192, 36, 53, 168, 208, 37, 74, 117, 192, 38, 21, 138, 208, 39, 42, 87, 192, 39, 254, 167, 80, 41, 10, 57, 192, 41, 222, 137, 80, 42, 234, 27, 192, 43, 190, 107, 80, 44, 211, 56, 64, 45, 158, 77, 80, 46, 179, 26, 64, 47, 126, 47, 80, 48, 146, 252, 64, 49, 103, 75, 208, 50, 114, 222, 64, 51, 71, 45, 208, 52, 82, 192, 64, 53, 39, 15, 208, 54, 50, 162, 64, 55, 6, 241, 208, 56, 27, 190, 192, 56, 230, 211, 208, 57, 251, 160, 192, 58, 198, 181, 208, 59, 219, 130, 192, 60, 175, 210, 80, 61, 187, 100, 192, 62, 143, 180, 80, 63, 155, 70, 192, 64, 111, 150, 80, 65, 132, 99, 64, 66, 79, 120, 80, 67, 100, 69, 64, 68, 47, 90, 80, 69, 68, 39, 64, 69, 243, 140, 208, 71, 45, 67, 192, 71, 211, 110, 208, 73, 13, 37, 192, 73, 179, 80, 208, 74, 237, 7, 192, 75, 156, 109, 80, 76, 214, 36, 64, 77, 124, 79, 80, 78, 182, 6, 64, 79, 92, 49, 80, 80, 149, 232, 64, 81, 60, 19, 80, 82, 117, 202, 64, 83, 27, 245, 80, 84, 85, 172, 64, 84, 251, 215, 80, 86, 53, 142, 64, 86, 228, 243, 208, 88, 30, 170, 192, 88, 196, 213, 208, 89, 254, 140, 192, 90, 164, 183, 208, 91, 222, 110, 192, 92, 132, 153, 208, 93, 190, 80, 192, 94, 100, 123, 208, 95, 158, 50, 192, 96, 77, 152, 80, 97, 135, 79, 64, 98, 45, 122, 80, 99, 103, 49, 64, 100, 13, 92, 80, 101, 71, 19, 64, 101, 237, 62, 80, 103, 38, 245, 64, 103, 205, 32, 80, 105, 6, 215, 64, 105, 173, 2, 80, 106, 230, 185, 64, 107, 150, 30, 208, 108, 207, 213, 192, 109, 118, 0, 208, 110, 175, 183, 192, 111, 85, 226, 208, 112, 143, 153, 192, 113, 53, 196, 208, 114, 111, 123, 192, 115, 21, 166, 208, 116, 79, 93, 192, 116, 254, 195, 80, 118, 56, 122, 64, 118, 222, 165, 80, 120, 24, 92, 64, 120, 190, 135, 80, 121, 248, 62, 64, 122, 158, 105, 80, 123, 216, 32, 64, 124, 126, 75, 80, 125, 184, 2, 64, 126, 94, 45, 80, 127, 151, 228, 64, 127, 255, 255, 255, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 255, 255, 203, 88, 0, 0, 255, 255, 199, 192, 0, 4, 255, 255, 213, 208, 0, 8, 255, 255, 227, 224, 1, 12, 76, 77, 84, 0, 65, 83, 84, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 60, 45, 48, 50, 62, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Moncton": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 128, 241, 182, 80, 158, 184, 133, 96, 159, 186, 221, 80, 187, 60, 56, 208, 187, 180, 35, 64, 189, 28, 26, 208, 189, 148, 5, 64, 190, 251, 252, 208, 191, 115, 231, 64, 192, 219, 222, 208, 193, 83, 201, 64, 194, 187, 192, 208, 195, 51, 171, 64, 196, 155, 162, 208, 197, 19, 141, 64, 198, 112, 248, 208, 199, 13, 205, 64, 200, 72, 241, 208, 200, 237, 175, 64, 202, 22, 94, 208, 202, 214, 203, 192, 203, 136, 226, 96, 210, 35, 244, 112, 210, 96, 237, 208, 211, 117, 214, 224, 212, 64, 207, 208, 213, 85, 184, 224, 214, 32, 177, 208, 215, 53, 154, 224, 216, 0, 147, 208, 217, 21, 124, 224, 217, 224, 117, 208, 218, 254, 153, 96, 219, 192, 87, 208, 220, 222, 123, 96, 221, 169, 116, 80, 222, 190, 93, 96, 223, 137, 86, 80, 224, 158, 63, 96, 225, 105, 56, 80, 226, 126, 33, 96, 227, 73, 26, 80, 228, 94, 3, 96, 229, 40, 252, 80, 230, 71, 31, 224, 231, 18, 24, 208, 232, 39, 1, 224, 233, 22, 228, 208, 234, 6, 227, 224, 234, 246, 198, 208, 235, 230, 197, 224, 236, 214, 168, 208, 237, 198, 167, 224, 238, 191, 197, 80, 239, 175, 196, 96, 240, 159, 167, 80, 241, 143, 166, 96, 242, 127, 137, 80, 243, 111, 136, 96, 244, 95, 107, 80, 245, 79, 106, 96, 246, 63, 77, 80, 247, 47, 76, 96, 248, 40, 105, 208, 249, 15, 46, 96, 250, 8, 75, 208, 250, 248, 74, 224, 251, 232, 45, 208, 252, 216, 44, 224, 253, 200, 15, 208, 254, 184, 14, 224, 255, 167, 241, 208, 0, 151, 240, 224, 1, 135, 211, 208, 2, 119, 210, 224, 3, 112, 240, 80, 4, 96, 239, 96, 5, 80, 210, 80, 8, 32, 179, 96, 9, 16, 150, 80, 10, 0, 149, 96, 10, 240, 120, 80, 11, 224, 119, 96, 12, 217, 148, 208, 13, 192, 89, 96, 14, 185, 118, 208, 15, 169, 117, 224, 16, 153, 88, 208, 17, 137, 87, 224, 18, 121, 58, 208, 19, 105, 57, 224, 20, 89, 28, 208, 21, 73, 27, 224, 22, 56, 254, 208, 23, 40, 253, 224, 24, 34, 27, 80, 25, 8, 223, 224, 26, 1, 253, 80, 26, 241, 252, 96, 27, 225, 223, 80, 28, 209, 222, 96, 29, 193, 193, 80, 30, 177, 192, 96, 31, 161, 163, 80, 32, 117, 242, 224, 33, 129, 133, 80, 34, 85, 212, 224, 35, 106, 161, 208, 36, 53, 182, 224, 37, 74, 131, 208, 38, 21, 152, 224, 39, 42, 101, 208, 39, 254, 181, 96, 41, 10, 71, 208, 41, 222, 151, 96, 42, 234, 41, 208, 43, 190, 93, 124, 44, 211, 42, 108, 45, 158, 63, 124, 46, 179, 12, 108, 47, 126, 33, 124, 48, 146, 238, 108, 49, 103, 61, 252, 50, 114, 208, 108, 51, 71, 31, 252, 52, 82, 178, 108, 53, 39, 1, 252, 54, 50, 148, 108, 55, 6, 227, 252, 56, 27, 176, 236, 56, 230, 197, 252, 57, 251, 146, 236, 58, 198, 167, 252, 59, 219, 116, 236, 60, 175, 196, 124, 61, 187, 86, 236, 62, 143, 166, 124, 63, 155, 56, 236, 64, 111, 136, 124, 65, 132, 85, 108, 66, 79, 106, 124, 67, 100, 55, 108, 68, 47, 76, 124, 69, 68, 25, 108, 69, 243, 154, 224, 71, 45, 81, 208, 71, 211, 124, 224, 73, 13, 51, 208, 73, 179, 94, 224, 74, 237, 21, 208, 75, 156, 123, 96, 76, 214, 50, 80, 77, 124, 93, 96, 78, 182, 20, 80, 79, 92, 63, 96, 80, 149, 246, 80, 81, 60, 33, 96, 82, 117, 216, 80, 83, 28, 3, 96, 84, 85, 186, 80, 84, 251, 229, 96, 86, 53, 156, 80, 86, 229, 1, 224, 88, 30, 184, 208, 88, 196, 227, 224, 89, 254, 154, 208, 90, 164, 197, 224, 91, 222, 124, 208, 92, 132, 167, 224, 93, 190, 94, 208, 94, 100, 137, 224, 95, 158, 64, 208, 96, 77, 166, 96, 97, 135, 93, 80, 98, 45, 136, 96, 99, 103, 63, 80, 100, 13, 106, 96, 101, 71, 33, 80, 101, 237, 76, 96, 103, 39, 3, 80, 103, 205, 46, 96, 105, 6, 229, 80, 105, 173, 16, 96, 106, 230, 199, 80, 107, 150, 44, 224, 108, 207, 227, 208, 109, 118, 14, 224, 110, 175, 197, 208, 111, 85, 240, 224, 112, 143, 167, 208, 113, 53, 210, 224, 114, 111, 137, 208, 115, 21, 180, 224, 116, 79, 107, 208, 116, 254, 209, 96, 118, 56, 136, 80, 118, 222, 179, 96, 120, 24, 106, 80, 120, 190, 149, 96, 121, 248, 76, 80, 122, 158, 119, 96, 123, 216, 46, 80, 124, 126, 89, 96, 125, 184, 16, 80, 126, 94, 59, 96, 127, 151, 242, 80, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 255, 255, 195, 68, 0, 0, 255, 255, 185, 176, 0, 4, 255, 255, 213, 208, 1, 8, 255, 255, 199, 192, 0, 12, 255, 255, 213, 208, 1, 16, 255, 255, 213, 208, 1, 20, 76, 77, 84, 0, 69, 83, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 65, 87, 84, 0, 65, 80, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 65, 83, 84, 52, 65, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Monterrey": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 165, 182, 218, 96, 34, 85, 241, 0, 35, 106, 189, 240, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 245, 4, 128, 59, 182, 194, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 70, 15, 102, 128, 71, 36, 51, 112, 71, 248, 131, 0, 73, 4, 21, 112, 73, 216, 101, 0, 74, 227, 247, 112, 75, 184, 71, 0, 76, 205, 19, 240, 77, 152, 41, 0, 78, 172, 245, 240, 79, 120, 11, 0, 80, 140, 215, 240, 81, 97, 39, 128, 82, 108, 185, 240, 83, 65, 9, 128, 84, 76, 155, 240, 85, 32, 235, 128, 86, 44, 125, 240, 87, 0, 205, 128, 88, 21, 154, 112, 88, 224, 175, 128, 89, 245, 124, 112, 90, 192, 145, 128, 91, 213, 94, 112, 92, 169, 174, 0, 93, 181, 64, 112, 94, 137, 144, 0, 95, 149, 34, 112, 96, 105, 114, 0, 97, 126, 62, 240, 98, 73, 84, 0, 99, 94, 32, 240, 100, 41, 54, 0, 101, 62, 2, 240, 102, 18, 82, 128, 103, 29, 228, 240, 103, 242, 52, 128, 104, 253, 198, 240, 105, 210, 22, 128, 106, 221, 168, 240, 107, 177, 248, 128, 108, 198, 197, 112, 109, 145, 218, 128, 110, 166, 167, 112, 111, 113, 188, 128, 112, 134, 137, 112, 113, 90, 217, 0, 114, 102, 107, 112, 115, 58, 187, 0, 116, 70, 77, 112, 117, 26, 157, 0, 118, 47, 105, 240, 118, 250, 127, 0, 120, 15, 75, 240, 120, 218, 97, 0, 121, 239, 45, 240, 122, 186, 67, 0, 123, 207, 15, 240, 124, 163, 95, 128, 125, 174, 241, 240, 126, 131, 65, 128, 127, 142, 211, 240, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 255, 255, 161, 244, 0, 0, 255, 255, 171, 160, 0, 4, 255, 255, 185, 176, 1, 8, 76, 77, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/America/Montevideo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 9, 0, 0, 0, 28, 128, 0, 0, 0, 162, 146, 135, 172, 169, 1, 37, 184, 169, 241, 15, 176, 170, 226, 89, 56, 171, 210, 67, 48, 172, 195, 140, 184, 173, 179, 118, 176, 187, 244, 181, 184, 188, 191, 181, 176, 189, 212, 151, 184, 190, 159, 151, 176, 191, 180, 121, 184, 192, 127, 121, 176, 193, 157, 150, 56, 194, 95, 91, 176, 195, 125, 120, 56, 196, 63, 61, 176, 197, 93, 90, 56, 198, 31, 31, 176, 199, 61, 60, 56, 200, 8, 60, 48, 201, 29, 30, 56, 201, 232, 30, 48, 202, 139, 159, 56, 203, 85, 77, 176, 205, 30, 205, 56, 205, 149, 95, 32, 236, 11, 133, 176, 236, 242, 46, 32, 237, 69, 74, 176, 237, 133, 214, 32, 247, 19, 114, 176, 247, 250, 27, 32, 248, 243, 84, 176, 250, 9, 115, 32, 250, 211, 54, 176, 251, 234, 166, 160, 252, 254, 62, 48, 253, 247, 98, 168, 254, 223, 113, 176, 255, 216, 150, 40, 0, 192, 165, 48, 1, 185, 201, 168, 4, 88, 220, 48, 4, 237, 199, 160, 7, 223, 239, 176, 9, 90, 71, 40, 12, 177, 221, 160, 14, 231, 127, 48, 15, 131, 2, 32, 18, 85, 134, 48, 19, 110, 71, 160, 33, 195, 84, 48, 34, 59, 62, 160, 35, 161, 228, 176, 36, 25, 207, 32, 37, 74, 103, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 10, 43, 176, 41, 176, 58, 160, 42, 224, 211, 48, 43, 144, 28, 160, 65, 76, 246, 48, 66, 70, 47, 192, 67, 72, 163, 208, 68, 19, 156, 192, 69, 31, 75, 80, 69, 243, 126, 192, 71, 8, 103, 208, 71, 211, 96, 192, 72, 232, 73, 208, 73, 179, 66, 192, 74, 200, 43, 208, 75, 156, 95, 64, 76, 168, 13, 208, 77, 124, 65, 64, 78, 135, 239, 208, 79, 92, 35, 64, 80, 113, 12, 80, 81, 60, 5, 64, 82, 80, 238, 80, 83, 27, 231, 64, 84, 48, 208, 80, 84, 251, 201, 64, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 2, 4, 2, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 6, 5, 7, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 255, 255, 203, 84, 0, 0, 255, 255, 203, 84, 0, 4, 255, 255, 213, 208, 1, 8, 255, 255, 206, 200, 0, 12, 255, 255, 206, 200, 0, 12, 255, 255, 213, 208, 0, 8, 255, 255, 227, 224, 1, 18, 255, 255, 220, 216, 1, 22, 255, 255, 227, 224, 1, 18, 76, 77, 84, 0, 77, 77, 84, 0, 45, 48, 51, 0, 45, 48, 51, 51, 48, 0, 45, 48, 50, 0, 45, 48, 50, 51, 48, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Montreal": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 147, 112, 159, 186, 235, 96, 160, 135, 46, 200, 161, 154, 177, 64, 162, 148, 6, 240, 163, 85, 169, 64, 164, 134, 93, 240, 165, 40, 120, 96, 166, 102, 63, 240, 167, 12, 78, 224, 168, 70, 33, 240, 168, 236, 48, 224, 170, 28, 201, 112, 170, 213, 77, 96, 171, 252, 171, 112, 172, 181, 47, 96, 173, 220, 141, 112, 174, 149, 17, 96, 175, 188, 111, 112, 176, 126, 45, 224, 177, 156, 81, 112, 178, 103, 74, 96, 179, 124, 51, 112, 180, 71, 44, 96, 181, 92, 21, 112, 182, 39, 14, 96, 183, 59, 247, 112, 184, 6, 240, 96, 185, 37, 19, 240, 185, 230, 210, 96, 187, 4, 245, 240, 187, 207, 238, 224, 188, 228, 215, 240, 189, 175, 208, 224, 190, 196, 185, 240, 191, 143, 178, 224, 192, 164, 155, 240, 193, 111, 148, 224, 194, 132, 125, 240, 195, 79, 118, 224, 196, 100, 95, 240, 197, 47, 88, 224, 198, 77, 124, 112, 199, 15, 58, 224, 200, 45, 94, 112, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 211, 117, 228, 240, 212, 64, 221, 224, 213, 85, 170, 208, 214, 32, 163, 192, 215, 53, 140, 208, 216, 0, 133, 192, 217, 21, 110, 208, 218, 51, 118, 64, 218, 254, 167, 112, 220, 19, 116, 96, 220, 222, 137, 112, 221, 169, 130, 96, 222, 190, 107, 112, 223, 137, 100, 96, 224, 158, 77, 112, 225, 105, 70, 96, 226, 126, 47, 112, 227, 73, 40, 96, 228, 94, 17, 112, 229, 41, 10, 96, 230, 71, 45, 240, 231, 18, 38, 224, 232, 39, 15, 240, 233, 22, 242, 224, 234, 6, 241, 240, 234, 246, 212, 224, 235, 230, 211, 240, 236, 214, 182, 224, 237, 198, 181, 240, 238, 191, 211, 96, 239, 175, 210, 112, 240, 159, 181, 96, 241, 143, 180, 112, 242, 127, 151, 96, 243, 111, 150, 112, 244, 95, 121, 96, 245, 79, 120, 112, 246, 63, 91, 96, 247, 47, 90, 112, 248, 40, 119, 224, 249, 15, 60, 112, 250, 8, 89, 224, 250, 248, 88, 240, 251, 232, 59, 224, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 8, 32, 193, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 181, 148, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 76, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Montserrat": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Nassau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 147, 55, 66, 138, 245, 79, 120, 112, 246, 63, 91, 96, 247, 47, 90, 112, 248, 40, 119, 224, 249, 15, 60, 112, 250, 8, 89, 224, 250, 248, 88, 240, 251, 232, 59, 224, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 8, 32, 193, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 183, 118, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/New_York": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 30, 112, 159, 186, 235, 96, 160, 134, 0, 112, 161, 154, 205, 96, 162, 101, 226, 112, 163, 131, 233, 224, 164, 106, 174, 112, 165, 53, 167, 96, 166, 83, 202, 240, 167, 21, 137, 96, 168, 51, 172, 240, 168, 254, 165, 224, 170, 19, 142, 240, 170, 222, 135, 224, 171, 243, 112, 240, 172, 190, 105, 224, 173, 211, 82, 240, 174, 158, 75, 224, 175, 179, 52, 240, 176, 126, 45, 224, 177, 156, 81, 112, 178, 103, 74, 96, 179, 124, 51, 112, 180, 71, 44, 96, 181, 92, 21, 112, 182, 39, 14, 96, 183, 59, 247, 112, 184, 6, 240, 96, 185, 27, 217, 112, 185, 230, 210, 96, 187, 4, 245, 240, 187, 198, 180, 96, 188, 228, 215, 240, 189, 175, 208, 224, 190, 196, 185, 240, 191, 143, 178, 224, 192, 164, 155, 240, 193, 111, 148, 224, 194, 132, 125, 240, 195, 79, 118, 224, 196, 100, 95, 240, 197, 47, 88, 224, 198, 77, 124, 112, 199, 15, 58, 224, 200, 45, 94, 112, 200, 248, 87, 96, 202, 13, 64, 112, 202, 216, 57, 96, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 211, 117, 228, 240, 212, 64, 221, 224, 213, 85, 198, 240, 214, 32, 191, 224, 215, 53, 168, 240, 216, 0, 161, 224, 217, 21, 138, 240, 217, 224, 131, 224, 218, 254, 167, 112, 219, 192, 101, 224, 220, 222, 137, 112, 221, 169, 130, 96, 222, 190, 107, 112, 223, 137, 100, 96, 224, 158, 77, 112, 225, 105, 70, 96, 226, 126, 47, 112, 227, 73, 40, 96, 228, 94, 17, 112, 229, 87, 46, 224, 230, 71, 45, 240, 231, 55, 16, 224, 232, 39, 15, 240, 233, 22, 242, 224, 234, 6, 241, 240, 234, 246, 212, 224, 235, 230, 211, 240, 236, 214, 182, 224, 237, 198, 181, 240, 238, 191, 211, 96, 239, 175, 210, 112, 240, 159, 181, 96, 241, 143, 180, 112, 242, 127, 151, 96, 243, 111, 150, 112, 244, 95, 121, 96, 245, 79, 120, 112, 246, 63, 91, 96, 247, 47, 90, 112, 248, 40, 119, 224, 249, 15, 60, 112, 250, 8, 89, 224, 250, 248, 88, 240, 251, 232, 59, 224, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 164, 96, 9, 173, 148, 240, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 186, 158, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 76, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Nipigon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 147, 112, 159, 186, 235, 96, 200, 248, 73, 80, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 8, 32, 193, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 173, 64, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 76, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Nome": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 9, 0, 0, 0, 38, 128, 0, 0, 0, 203, 137, 68, 208, 210, 35, 244, 112, 210, 97, 80, 64, 250, 210, 85, 176, 254, 184, 113, 80, 255, 168, 84, 64, 0, 152, 83, 80, 1, 136, 54, 64, 2, 120, 53, 80, 3, 113, 82, 192, 4, 97, 81, 208, 5, 81, 52, 192, 6, 65, 51, 208, 7, 49, 22, 192, 7, 141, 109, 208, 9, 16, 248, 192, 9, 173, 233, 80, 10, 240, 218, 192, 11, 224, 217, 208, 12, 217, 247, 64, 13, 192, 187, 208, 14, 185, 217, 64, 15, 169, 216, 80, 16, 153, 187, 64, 17, 137, 186, 80, 18, 121, 157, 64, 19, 105, 156, 80, 20, 89, 127, 64, 21, 73, 126, 80, 22, 57, 97, 64, 23, 41, 96, 80, 24, 34, 125, 192, 25, 9, 66, 80, 26, 2, 95, 192, 26, 43, 20, 16, 26, 242, 66, 176, 27, 226, 37, 160, 28, 210, 36, 176, 29, 194, 7, 160, 30, 178, 6, 176, 31, 161, 233, 160, 32, 118, 57, 48, 33, 129, 203, 160, 34, 86, 27, 48, 35, 106, 232, 32, 36, 53, 253, 48, 37, 74, 202, 32, 38, 21, 223, 48, 39, 42, 172, 32, 39, 254, 251, 176, 41, 10, 142, 32, 41, 222, 221, 176, 42, 234, 112, 32, 43, 190, 191, 176, 44, 211, 140, 160, 45, 158, 161, 176, 46, 179, 110, 160, 47, 126, 131, 176, 48, 147, 80, 160, 49, 103, 160, 48, 50, 115, 50, 160, 51, 71, 130, 48, 52, 83, 20, 160, 53, 39, 100, 48, 54, 50, 246, 160, 55, 7, 70, 48, 56, 28, 19, 32, 56, 231, 40, 48, 57, 251, 245, 32, 58, 199, 10, 48, 59, 219, 215, 32, 60, 176, 38, 176, 61, 187, 185, 32, 62, 144, 8, 176, 63, 155, 155, 32, 64, 111, 234, 176, 65, 132, 183, 160, 66, 79, 204, 176, 67, 100, 153, 160, 68, 47, 174, 176, 69, 68, 123, 160, 69, 243, 225, 48, 71, 45, 152, 32, 71, 211, 195, 48, 73, 13, 122, 32, 73, 179, 165, 48, 74, 237, 92, 32, 75, 156, 193, 176, 76, 214, 120, 160, 77, 124, 163, 176, 78, 182, 90, 160, 79, 92, 133, 176, 80, 150, 60, 160, 81, 60, 103, 176, 82, 118, 30, 160, 83, 28, 73, 176, 84, 86, 0, 160, 84, 252, 43, 176, 86, 53, 226, 160, 86, 229, 72, 48, 88, 30, 255, 32, 88, 197, 42, 48, 89, 254, 225, 32, 90, 165, 12, 48, 91, 222, 195, 32, 92, 132, 238, 48, 93, 190, 165, 32, 94, 100, 208, 48, 95, 158, 135, 32, 96, 77, 236, 176, 97, 135, 163, 160, 98, 45, 206, 176, 99, 103, 133, 160, 100, 13, 176, 176, 101, 71, 103, 160, 101, 237, 146, 176, 103, 39, 73, 160, 103, 205, 116, 176, 105, 7, 43, 160, 105, 173, 86, 176, 106, 231, 13, 160, 107, 150, 115, 48, 108, 208, 42, 32, 109, 118, 85, 48, 110, 176, 12, 32, 111, 86, 55, 48, 112, 143, 238, 32, 113, 54, 25, 48, 114, 111, 208, 32, 115, 21, 251, 48, 116, 79, 178, 32, 116, 255, 23, 176, 118, 56, 206, 160, 118, 222, 249, 176, 120, 24, 176, 160, 120, 190, 219, 176, 121, 248, 146, 160, 122, 158, 189, 176, 123, 216, 116, 160, 124, 126, 159, 176, 125, 184, 86, 160, 126, 94, 129, 176, 127, 152, 56, 160, 1, 2, 3, 1, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 100, 238, 0, 0, 255, 255, 101, 80, 0, 4, 255, 255, 115, 96, 1, 8, 255, 255, 115, 96, 1, 12, 255, 255, 101, 80, 0, 16, 255, 255, 115, 96, 1, 20, 255, 255, 129, 112, 0, 24, 255, 255, 143, 128, 1, 28, 255, 255, 129, 112, 0, 33, 76, 77, 84, 0, 78, 83, 84, 0, 78, 87, 84, 0, 78, 80, 84, 0, 66, 83, 84, 0, 66, 68, 84, 0, 89, 83, 84, 0, 65, 75, 68, 84, 0, 65, 75, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 65, 75, 83, 84, 57, 65, 75, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Noronha": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 101, 100, 184, 15, 59, 208, 184, 253, 50, 144, 185, 241, 38, 32, 186, 222, 102, 16, 218, 56, 160, 32, 218, 235, 236, 32, 220, 25, 211, 160, 220, 185, 75, 16, 221, 251, 7, 32, 222, 155, 208, 16, 223, 221, 140, 32, 224, 84, 37, 16, 244, 151, 241, 160, 245, 5, 80, 16, 246, 192, 86, 32, 247, 14, 16, 144, 248, 81, 30, 32, 248, 199, 183, 16, 250, 10, 196, 160, 250, 168, 234, 144, 251, 235, 248, 32, 252, 139, 111, 144, 29, 201, 128, 32, 30, 120, 201, 144, 31, 160, 39, 160, 32, 51, 193, 144, 33, 129, 91, 32, 34, 11, 186, 144, 35, 88, 2, 160, 35, 226, 98, 16, 37, 55, 228, 160, 37, 212, 185, 16, 55, 246, 184, 160, 56, 184, 119, 16, 57, 223, 213, 32, 57, 233, 1, 144, 59, 200, 241, 160, 60, 111, 0, 144, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 225, 156, 0, 0, 255, 255, 241, 240, 1, 4, 255, 255, 227, 224, 0, 8, 76, 77, 84, 0, 45, 48, 49, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 50, 62, 50, 10},
+
+ "zoneinfo/America/North_Dakota/Beulah": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 160, 149, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 185, 176, 1, 20, 255, 255, 171, 160, 0, 24, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/North_Dakota/Center": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 161, 8, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 185, 176, 1, 20, 255, 255, 171, 160, 0, 24, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/North_Dakota/New_Salem": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 160, 237, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 185, 176, 1, 20, 255, 255, 171, 160, 0, 24, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Ojinaga": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 245, 18, 144, 59, 182, 209, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 70, 15, 116, 144, 71, 36, 65, 128, 71, 248, 145, 16, 73, 4, 35, 128, 73, 216, 115, 16, 74, 228, 5, 128, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 0, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 255, 255, 158, 28, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 157, 144, 0, 4, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 77, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Panama": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 139, 244, 97, 232, 1, 2, 255, 255, 181, 112, 0, 0, 255, 255, 181, 24, 0, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 67, 77, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/America/Pangnirtung": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 12, 0, 0, 0, 41, 128, 0, 0, 0, 163, 213, 82, 128, 203, 136, 226, 96, 210, 35, 244, 112, 210, 96, 237, 208, 247, 47, 48, 64, 248, 40, 91, 192, 19, 105, 57, 224, 20, 89, 28, 208, 21, 73, 27, 224, 22, 56, 254, 208, 23, 40, 253, 224, 24, 34, 27, 80, 25, 8, 223, 224, 26, 1, 253, 80, 26, 241, 252, 96, 27, 225, 223, 80, 28, 209, 222, 96, 29, 193, 193, 80, 30, 177, 192, 96, 31, 161, 163, 80, 32, 117, 242, 224, 33, 129, 133, 80, 34, 85, 212, 224, 35, 106, 161, 208, 36, 53, 182, 224, 37, 74, 131, 208, 38, 21, 152, 224, 39, 42, 101, 208, 39, 254, 181, 96, 41, 10, 71, 208, 41, 222, 151, 96, 42, 234, 41, 208, 43, 190, 121, 96, 44, 211, 70, 80, 45, 158, 91, 96, 46, 179, 40, 80, 47, 126, 61, 96, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 0, 3, 1, 2, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 7, 6, 7, 6, 7, 6, 7, 6, 8, 9, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 0, 0, 0, 0, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 213, 208, 1, 8, 255, 255, 199, 192, 0, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 1, 21, 255, 255, 199, 192, 1, 25, 255, 255, 185, 176, 0, 29, 255, 255, 171, 160, 0, 33, 255, 255, 185, 176, 1, 37, 255, 255, 199, 192, 1, 25, 255, 255, 185, 176, 0, 29, 45, 48, 48, 0, 65, 87, 84, 0, 65, 80, 84, 0, 65, 83, 84, 0, 65, 68, 68, 84, 0, 65, 68, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Paramaribo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 18, 128, 0, 0, 0, 145, 5, 142, 184, 190, 42, 75, 196, 210, 98, 44, 180, 27, 190, 49, 184, 127, 255, 255, 255, 0, 1, 2, 3, 4, 4, 255, 255, 204, 72, 0, 0, 255, 255, 204, 60, 0, 4, 255, 255, 204, 76, 0, 4, 255, 255, 206, 200, 0, 8, 255, 255, 213, 208, 0, 14, 76, 77, 84, 0, 80, 77, 84, 0, 45, 48, 51, 51, 48, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Phoenix": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 203, 137, 12, 144, 207, 23, 223, 28, 207, 143, 229, 172, 208, 129, 26, 28, 250, 248, 117, 16, 251, 232, 88, 0, 2, 1, 2, 1, 2, 3, 2, 3, 2, 1, 2, 255, 255, 150, 238, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 10},
+
+ "zoneinfo/America/Port-au-Prince": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 6, 0, 0, 0, 17, 128, 0, 0, 0, 156, 110, 113, 252, 25, 27, 70, 208, 26, 1, 239, 64, 26, 241, 238, 80, 27, 225, 209, 64, 28, 209, 208, 80, 29, 193, 179, 64, 30, 177, 178, 80, 31, 161, 149, 64, 32, 145, 148, 80, 33, 129, 119, 64, 34, 85, 212, 224, 35, 106, 175, 224, 36, 53, 182, 224, 37, 74, 145, 224, 38, 21, 152, 224, 39, 42, 115, 224, 39, 254, 181, 96, 41, 10, 85, 224, 41, 222, 151, 96, 42, 234, 55, 224, 43, 190, 121, 96, 44, 211, 84, 96, 45, 158, 91, 96, 46, 179, 54, 96, 47, 126, 61, 96, 48, 147, 24, 96, 49, 103, 89, 224, 50, 114, 250, 96, 51, 71, 59, 224, 52, 82, 220, 96, 66, 79, 120, 80, 67, 100, 69, 64, 68, 47, 90, 80, 69, 68, 39, 64, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 255, 255, 188, 48, 0, 0, 255, 255, 188, 68, 0, 4, 255, 255, 199, 192, 1, 9, 255, 255, 185, 176, 0, 13, 255, 255, 199, 192, 1, 9, 255, 255, 185, 176, 0, 13, 76, 77, 84, 0, 80, 80, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Port_of_Spain": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Porto_Acre": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 134, 144, 184, 15, 102, 0, 184, 253, 92, 192, 185, 241, 80, 80, 186, 222, 144, 64, 218, 56, 202, 80, 218, 236, 22, 80, 220, 25, 253, 208, 220, 185, 117, 64, 221, 251, 49, 80, 222, 155, 250, 64, 223, 221, 182, 80, 224, 84, 79, 64, 244, 152, 27, 208, 245, 5, 122, 64, 246, 192, 128, 80, 247, 14, 58, 192, 248, 81, 72, 80, 248, 199, 225, 64, 250, 10, 238, 208, 250, 169, 20, 192, 251, 236, 34, 80, 252, 139, 153, 192, 29, 201, 170, 80, 30, 120, 243, 192, 31, 160, 81, 208, 32, 51, 235, 192, 33, 129, 133, 80, 34, 11, 228, 192, 72, 96, 127, 80, 82, 127, 4, 192, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 2, 255, 255, 192, 112, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 0, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 45, 48, 52, 0, 45, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/America/Porto_Velho": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 130, 232, 184, 15, 87, 240, 184, 253, 78, 176, 185, 241, 66, 64, 186, 222, 130, 48, 218, 56, 188, 64, 218, 236, 8, 64, 220, 25, 239, 192, 220, 185, 103, 48, 221, 251, 35, 64, 222, 155, 236, 48, 223, 221, 168, 64, 224, 84, 65, 48, 244, 152, 13, 192, 245, 5, 108, 48, 246, 192, 114, 64, 247, 14, 44, 176, 248, 81, 58, 64, 248, 199, 211, 48, 250, 10, 224, 192, 250, 169, 6, 176, 251, 236, 20, 64, 252, 139, 139, 176, 29, 201, 156, 64, 30, 120, 229, 176, 31, 160, 67, 192, 32, 51, 221, 176, 33, 129, 119, 64, 34, 11, 214, 176, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 196, 24, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/America/Puerto_Rico": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 203, 246, 50, 192, 210, 35, 244, 112, 210, 96, 237, 208, 1, 3, 2, 1, 255, 255, 194, 7, 0, 0, 255, 255, 199, 192, 0, 4, 255, 255, 213, 208, 1, 8, 255, 255, 213, 208, 1, 12, 76, 77, 84, 0, 65, 83, 84, 0, 65, 80, 84, 0, 65, 87, 84, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Punta_Arenas": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 8, 0, 0, 0, 20, 128, 0, 0, 0, 143, 48, 71, 70, 155, 92, 229, 80, 159, 124, 226, 198, 161, 0, 113, 192, 176, 94, 119, 198, 177, 119, 61, 64, 178, 65, 0, 208, 179, 88, 112, 192, 180, 34, 52, 80, 181, 57, 164, 64, 182, 3, 103, 208, 183, 26, 215, 192, 183, 228, 155, 80, 184, 253, 92, 192, 185, 199, 32, 80, 204, 28, 110, 64, 204, 108, 231, 208, 213, 51, 85, 192, 213, 118, 146, 64, 253, 209, 60, 64, 254, 146, 250, 176, 255, 204, 205, 192, 0, 114, 220, 176, 1, 117, 80, 192, 2, 64, 73, 176, 3, 85, 50, 192, 4, 32, 43, 176, 5, 62, 79, 64, 6, 0, 13, 176, 7, 11, 188, 64, 7, 223, 239, 176, 8, 254, 19, 64, 9, 191, 209, 176, 10, 221, 245, 64, 11, 168, 238, 48, 12, 189, 215, 64, 13, 136, 208, 48, 14, 157, 185, 64, 15, 104, 178, 48, 16, 134, 213, 192, 17, 72, 148, 48, 18, 102, 183, 192, 19, 40, 118, 48, 20, 70, 153, 192, 21, 17, 146, 176, 22, 38, 123, 192, 22, 241, 116, 176, 24, 6, 93, 192, 24, 209, 86, 176, 25, 230, 63, 192, 26, 177, 56, 176, 27, 207, 92, 64, 28, 145, 26, 176, 29, 175, 62, 64, 30, 112, 252, 176, 31, 143, 32, 64, 32, 127, 3, 48, 33, 111, 2, 64, 34, 57, 251, 48, 35, 78, 228, 64, 36, 25, 221, 48, 37, 56, 0, 192, 37, 249, 191, 48, 38, 242, 248, 192, 39, 217, 161, 48, 40, 247, 196, 192, 41, 194, 189, 176, 42, 215, 166, 192, 43, 162, 159, 176, 44, 183, 136, 192, 45, 130, 129, 176, 46, 151, 106, 192, 47, 98, 99, 176, 48, 128, 135, 64, 49, 66, 69, 176, 50, 96, 105, 64, 51, 61, 215, 48, 52, 64, 75, 64, 53, 11, 68, 48, 54, 13, 184, 64, 55, 6, 213, 176, 56, 0, 15, 64, 56, 203, 8, 48, 57, 233, 43, 192, 58, 170, 234, 48, 59, 201, 13, 192, 60, 138, 204, 48, 61, 168, 239, 192, 62, 106, 174, 48, 63, 136, 209, 192, 64, 83, 202, 176, 65, 104, 179, 192, 66, 51, 172, 176, 67, 72, 149, 192, 68, 19, 142, 176, 69, 49, 178, 64, 69, 243, 112, 176, 71, 17, 148, 64, 71, 239, 2, 48, 72, 241, 118, 64, 73, 188, 111, 48, 74, 209, 88, 64, 75, 184, 0, 176, 76, 177, 58, 64, 77, 198, 7, 48, 78, 80, 130, 192, 79, 156, 174, 176, 80, 66, 217, 192, 81, 124, 144, 176, 82, 43, 246, 64, 83, 92, 114, 176, 84, 11, 216, 64, 87, 55, 230, 48, 87, 175, 236, 192, 88, 67, 134, 176, 127, 255, 255, 255, 1, 2, 1, 3, 1, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 3, 2, 3, 2, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 7, 255, 255, 189, 132, 0, 0, 255, 255, 189, 186, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 0, 12, 255, 255, 199, 192, 1, 12, 255, 255, 213, 208, 1, 16, 255, 255, 199, 192, 0, 12, 255, 255, 213, 208, 0, 16, 76, 77, 84, 0, 83, 77, 84, 0, 45, 48, 53, 0, 45, 48, 52, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Rainy_River": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 161, 128, 159, 186, 249, 112, 200, 248, 87, 96, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 8, 32, 207, 128, 9, 16, 178, 112, 10, 0, 177, 128, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 167, 88, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Rankin_Inlet": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 231, 140, 110, 0, 247, 47, 76, 96, 248, 40, 119, 224, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 0, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 0, 0, 0, 0, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 171, 160, 0, 9, 255, 255, 185, 176, 1, 13, 255, 255, 185, 176, 0, 17, 255, 255, 171, 160, 0, 9, 45, 48, 48, 0, 67, 68, 68, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Recife": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 103, 184, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 151, 255, 176, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 35, 88, 16, 176, 35, 226, 112, 32, 37, 55, 242, 176, 37, 212, 199, 32, 55, 246, 198, 176, 56, 184, 133, 32, 57, 223, 227, 48, 57, 233, 15, 160, 59, 200, 255, 176, 60, 111, 14, 160, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 223, 72, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Regina": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 134, 253, 147, 28, 158, 184, 175, 144, 159, 187, 7, 128, 181, 101, 79, 240, 182, 48, 72, 224, 183, 69, 49, 240, 184, 16, 42, 224, 185, 37, 19, 240, 185, 240, 12, 224, 187, 14, 48, 112, 187, 207, 238, 224, 188, 238, 18, 112, 189, 185, 11, 96, 194, 114, 8, 240, 195, 97, 235, 224, 196, 81, 234, 240, 197, 56, 147, 96, 198, 49, 204, 240, 199, 33, 175, 224, 200, 26, 233, 112, 201, 10, 204, 96, 201, 250, 203, 112, 202, 234, 174, 96, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 211, 99, 140, 16, 212, 83, 111, 0, 213, 85, 227, 16, 214, 32, 220, 0, 215, 53, 197, 16, 216, 0, 190, 0, 217, 21, 167, 16, 217, 224, 160, 0, 218, 254, 195, 144, 219, 192, 130, 0, 220, 222, 165, 144, 221, 169, 158, 128, 222, 190, 135, 144, 223, 137, 128, 128, 224, 158, 105, 144, 225, 105, 98, 128, 226, 126, 75, 144, 227, 73, 68, 128, 228, 94, 45, 144, 229, 41, 38, 128, 230, 71, 74, 16, 231, 18, 67, 0, 232, 39, 44, 16, 232, 242, 37, 0, 235, 230, 240, 16, 236, 214, 211, 0, 237, 198, 210, 16, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 255, 255, 157, 228, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 171, 160, 0, 20, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Resolute": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 213, 251, 129, 128, 247, 47, 76, 96, 248, 40, 119, 224, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 0, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 0, 0, 0, 0, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 171, 160, 0, 9, 255, 255, 185, 176, 1, 13, 255, 255, 185, 176, 0, 17, 255, 255, 171, 160, 0, 9, 45, 48, 48, 0, 67, 68, 68, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Rio_Branco": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 134, 144, 184, 15, 102, 0, 184, 253, 92, 192, 185, 241, 80, 80, 186, 222, 144, 64, 218, 56, 202, 80, 218, 236, 22, 80, 220, 25, 253, 208, 220, 185, 117, 64, 221, 251, 49, 80, 222, 155, 250, 64, 223, 221, 182, 80, 224, 84, 79, 64, 244, 152, 27, 208, 245, 5, 122, 64, 246, 192, 128, 80, 247, 14, 58, 192, 248, 81, 72, 80, 248, 199, 225, 64, 250, 10, 238, 208, 250, 169, 20, 192, 251, 236, 34, 80, 252, 139, 153, 192, 29, 201, 170, 80, 30, 120, 243, 192, 31, 160, 81, 208, 32, 51, 235, 192, 33, 129, 133, 80, 34, 11, 228, 192, 72, 96, 127, 80, 82, 127, 4, 192, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 2, 255, 255, 192, 112, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 0, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 45, 48, 52, 0, 45, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/America/Rosario": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 162, 146, 143, 48, 182, 123, 82, 64, 183, 26, 201, 176, 184, 30, 143, 64, 184, 212, 112, 48, 186, 23, 125, 192, 186, 181, 163, 176, 187, 248, 177, 64, 188, 150, 215, 48, 189, 217, 228, 192, 190, 120, 10, 176, 191, 187, 24, 64, 192, 90, 143, 176, 193, 157, 157, 64, 194, 59, 195, 48, 195, 126, 208, 192, 196, 28, 246, 176, 197, 96, 4, 64, 197, 254, 42, 48, 199, 65, 55, 192, 199, 224, 175, 48, 200, 129, 148, 64, 202, 77, 161, 176, 202, 238, 134, 192, 206, 77, 255, 48, 206, 176, 237, 192, 211, 41, 53, 176, 212, 67, 100, 192, 244, 61, 8, 48, 244, 159, 246, 192, 245, 5, 108, 48, 246, 50, 16, 64, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 35, 148, 181, 176, 36, 16, 148, 160, 37, 55, 242, 176, 37, 240, 118, 160, 39, 33, 15, 48, 39, 208, 88, 160, 41, 0, 255, 64, 41, 176, 58, 160, 42, 224, 211, 48, 43, 153, 87, 32, 55, 246, 198, 176, 56, 191, 42, 176, 71, 119, 9, 176, 71, 220, 127, 32, 72, 250, 162, 176, 73, 188, 97, 32, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, 4, 5, 4, 2, 4, 5, 4, 5, 3, 5, 4, 5, 4, 5, 5, 255, 255, 195, 208, 0, 0, 255, 255, 195, 208, 0, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 12, 76, 77, 84, 0, 67, 77, 84, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Santa_Isabel": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 165, 182, 246, 128, 169, 121, 79, 112, 175, 242, 124, 240, 182, 102, 100, 112, 183, 27, 16, 0, 184, 10, 242, 240, 203, 234, 141, 128, 210, 35, 244, 112, 210, 153, 186, 112, 215, 27, 89, 0, 216, 145, 180, 240, 226, 126, 75, 144, 227, 73, 82, 144, 228, 94, 45, 144, 229, 41, 52, 144, 230, 71, 74, 16, 231, 18, 81, 16, 232, 39, 44, 16, 232, 242, 51, 16, 234, 7, 14, 16, 234, 210, 21, 16, 235, 230, 240, 16, 236, 177, 247, 16, 237, 198, 210, 16, 238, 145, 217, 16, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 70, 15, 130, 160, 71, 36, 79, 144, 71, 248, 159, 32, 73, 4, 49, 144, 73, 216, 129, 32, 74, 228, 19, 144, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 0, 1, 2, 1, 2, 3, 2, 4, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 146, 76, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 157, 144, 1, 20, 76, 77, 84, 0, 77, 83, 84, 0, 80, 83, 84, 0, 80, 68, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Santarem": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 122, 72, 184, 15, 87, 240, 184, 253, 78, 176, 185, 241, 66, 64, 186, 222, 130, 48, 218, 56, 188, 64, 218, 236, 8, 64, 220, 25, 239, 192, 220, 185, 103, 48, 221, 251, 35, 64, 222, 155, 236, 48, 223, 221, 168, 64, 224, 84, 65, 48, 244, 152, 13, 192, 245, 5, 108, 48, 246, 192, 114, 64, 247, 14, 44, 176, 248, 81, 58, 64, 248, 199, 211, 48, 250, 10, 224, 192, 250, 169, 6, 176, 251, 236, 20, 64, 252, 139, 139, 176, 29, 201, 156, 64, 30, 120, 229, 176, 31, 160, 67, 192, 32, 51, 221, 176, 33, 129, 119, 64, 34, 11, 214, 176, 72, 96, 113, 64, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 3, 255, 255, 204, 184, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 0, 4, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/America/Santiago": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, 20, 128, 0, 0, 0, 143, 48, 71, 70, 155, 92, 229, 80, 159, 124, 226, 198, 161, 0, 113, 192, 176, 94, 119, 198, 177, 119, 61, 64, 178, 65, 0, 208, 179, 88, 112, 192, 180, 34, 52, 80, 181, 57, 164, 64, 182, 3, 103, 208, 183, 26, 215, 192, 183, 228, 155, 80, 184, 253, 92, 192, 185, 199, 32, 80, 204, 28, 110, 64, 204, 108, 231, 208, 211, 220, 143, 192, 212, 27, 201, 176, 213, 51, 85, 192, 213, 118, 146, 64, 253, 209, 60, 64, 254, 146, 250, 176, 255, 204, 205, 192, 0, 114, 220, 176, 1, 117, 80, 192, 2, 64, 73, 176, 3, 85, 50, 192, 4, 32, 43, 176, 5, 62, 79, 64, 6, 0, 13, 176, 7, 11, 188, 64, 7, 223, 239, 176, 8, 254, 19, 64, 9, 191, 209, 176, 10, 221, 245, 64, 11, 168, 238, 48, 12, 189, 215, 64, 13, 136, 208, 48, 14, 157, 185, 64, 15, 104, 178, 48, 16, 134, 213, 192, 17, 72, 148, 48, 18, 102, 183, 192, 19, 40, 118, 48, 20, 70, 153, 192, 21, 17, 146, 176, 22, 38, 123, 192, 22, 241, 116, 176, 24, 6, 93, 192, 24, 209, 86, 176, 25, 230, 63, 192, 26, 177, 56, 176, 27, 207, 92, 64, 28, 145, 26, 176, 29, 175, 62, 64, 30, 112, 252, 176, 31, 143, 32, 64, 32, 127, 3, 48, 33, 111, 2, 64, 34, 57, 251, 48, 35, 78, 228, 64, 36, 25, 221, 48, 37, 56, 0, 192, 37, 249, 191, 48, 38, 242, 248, 192, 39, 217, 161, 48, 40, 247, 196, 192, 41, 194, 189, 176, 42, 215, 166, 192, 43, 162, 159, 176, 44, 183, 136, 192, 45, 130, 129, 176, 46, 151, 106, 192, 47, 98, 99, 176, 48, 128, 135, 64, 49, 66, 69, 176, 50, 96, 105, 64, 51, 61, 215, 48, 52, 64, 75, 64, 53, 11, 68, 48, 54, 13, 184, 64, 55, 6, 213, 176, 56, 0, 15, 64, 56, 203, 8, 48, 57, 233, 43, 192, 58, 170, 234, 48, 59, 201, 13, 192, 60, 138, 204, 48, 61, 168, 239, 192, 62, 106, 174, 48, 63, 136, 209, 192, 64, 83, 202, 176, 65, 104, 179, 192, 66, 51, 172, 176, 67, 72, 149, 192, 68, 19, 142, 176, 69, 49, 178, 64, 69, 243, 112, 176, 71, 17, 148, 64, 71, 239, 2, 48, 72, 241, 118, 64, 73, 188, 111, 48, 74, 209, 88, 64, 75, 184, 0, 176, 76, 177, 58, 64, 77, 198, 7, 48, 78, 80, 130, 192, 79, 156, 174, 176, 80, 66, 217, 192, 81, 124, 144, 176, 82, 43, 246, 64, 83, 92, 114, 176, 84, 11, 216, 64, 87, 55, 230, 48, 87, 175, 236, 192, 89, 23, 200, 48, 89, 143, 206, 192, 90, 247, 170, 48, 91, 111, 176, 192, 92, 215, 140, 48, 93, 79, 146, 192, 94, 183, 110, 48, 95, 47, 116, 192, 96, 151, 80, 48, 97, 24, 145, 64, 98, 128, 108, 176, 98, 248, 115, 64, 100, 96, 78, 176, 100, 216, 85, 64, 102, 64, 48, 176, 102, 184, 55, 64, 104, 32, 18, 176, 104, 152, 25, 64, 105, 255, 244, 176, 106, 119, 251, 64, 107, 223, 214, 176, 108, 97, 23, 192, 109, 200, 243, 48, 110, 64, 249, 192, 111, 168, 213, 48, 112, 32, 219, 192, 113, 136, 183, 48, 114, 0, 189, 192, 115, 104, 153, 48, 115, 224, 159, 192, 117, 72, 123, 48, 117, 201, 188, 64, 119, 49, 151, 176, 119, 169, 158, 64, 121, 17, 121, 176, 121, 137, 128, 64, 122, 241, 91, 176, 123, 105, 98, 64, 124, 209, 61, 176, 125, 73, 68, 64, 126, 177, 31, 176, 127, 41, 38, 64, 127, 255, 255, 255, 1, 2, 1, 3, 1, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 3, 2, 3, 5, 3, 2, 3, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 6, 255, 255, 189, 186, 0, 0, 255, 255, 189, 186, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 0, 12, 255, 255, 199, 192, 1, 12, 255, 255, 213, 208, 1, 16, 255, 255, 213, 208, 1, 16, 255, 255, 199, 192, 0, 12, 76, 77, 84, 0, 83, 77, 84, 0, 45, 48, 53, 0, 45, 48, 52, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 10, 60, 45, 48, 52, 62, 52, 60, 45, 48, 51, 62, 44, 77, 56, 46, 50, 46, 54, 47, 50, 52, 44, 77, 53, 46, 50, 46, 54, 47, 50, 52, 10},
+
+ "zoneinfo/America/Santo_Domingo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 6, 0, 0, 0, 27, 128, 0, 0, 0, 186, 223, 66, 96, 250, 8, 75, 208, 250, 167, 195, 64, 255, 167, 241, 208, 0, 67, 123, 200, 1, 135, 211, 208, 1, 250, 127, 72, 3, 112, 240, 80, 3, 221, 4, 72, 5, 80, 210, 80, 5, 191, 137, 72, 7, 48, 180, 80, 7, 160, 188, 200, 9, 16, 150, 80, 57, 251, 188, 224, 58, 41, 225, 96, 1, 3, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 255, 255, 190, 120, 0, 0, 255, 255, 190, 96, 0, 4, 255, 255, 199, 192, 1, 9, 255, 255, 185, 176, 0, 13, 255, 255, 192, 184, 1, 17, 255, 255, 199, 192, 0, 23, 76, 77, 84, 0, 83, 68, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 45, 48, 52, 51, 48, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Sao_Paulo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 114, 180, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 90, 9, 48, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 35, 88, 16, 176, 35, 226, 112, 32, 37, 55, 242, 176, 37, 212, 199, 32, 39, 33, 15, 48, 39, 189, 227, 160, 41, 0, 241, 48, 41, 148, 139, 32, 42, 234, 13, 176, 43, 107, 50, 160, 44, 192, 181, 48, 45, 102, 196, 32, 46, 160, 151, 48, 47, 70, 166, 32, 48, 128, 121, 48, 49, 29, 77, 160, 50, 87, 32, 176, 51, 6, 106, 32, 52, 56, 84, 48, 52, 248, 193, 32, 54, 32, 31, 48, 54, 207, 104, 160, 55, 246, 198, 176, 56, 184, 133, 32, 57, 223, 227, 48, 58, 143, 44, 160, 59, 200, 255, 176, 60, 111, 14, 160, 61, 196, 145, 48, 62, 78, 240, 160, 63, 145, 254, 48, 64, 46, 210, 160, 65, 134, 248, 48, 66, 23, 239, 32, 67, 81, 194, 48, 67, 247, 209, 32, 69, 77, 83, 176, 69, 224, 237, 160, 71, 17, 134, 48, 71, 183, 149, 32, 72, 250, 162, 176, 73, 151, 119, 32, 74, 218, 132, 176, 75, 128, 147, 160, 76, 186, 102, 176, 77, 96, 117, 160, 78, 154, 72, 176, 79, 73, 146, 32, 80, 131, 101, 48, 81, 32, 57, 160, 82, 99, 71, 48, 83, 0, 27, 160, 84, 67, 41, 48, 84, 233, 56, 32, 86, 35, 11, 48, 86, 201, 26, 32, 88, 2, 237, 48, 88, 168, 252, 32, 89, 226, 207, 48, 90, 136, 222, 32, 91, 203, 235, 176, 92, 104, 192, 32, 93, 171, 205, 176, 94, 72, 162, 32, 95, 139, 175, 176, 96, 49, 190, 160, 97, 107, 145, 176, 98, 17, 160, 160, 99, 75, 115, 176, 99, 250, 189, 32, 101, 43, 85, 176, 101, 209, 100, 160, 103, 20, 114, 48, 103, 177, 70, 160, 104, 244, 84, 48, 105, 154, 99, 32, 106, 212, 54, 48, 107, 122, 69, 32, 108, 180, 24, 48, 109, 90, 39, 32, 110, 147, 250, 48, 111, 58, 9, 32, 112, 125, 22, 176, 113, 25, 235, 32, 114, 92, 248, 176, 114, 249, 205, 32, 116, 60, 218, 176, 116, 217, 175, 32, 118, 28, 188, 176, 118, 194, 203, 160, 119, 252, 158, 176, 120, 171, 232, 32, 121, 220, 128, 176, 122, 130, 143, 160, 123, 197, 157, 48, 124, 98, 113, 160, 125, 165, 127, 48, 126, 75, 142, 32, 127, 133, 97, 48, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 255, 255, 212, 76, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 60, 45, 48, 50, 62, 44, 77, 49, 48, 46, 51, 46, 48, 47, 48, 44, 77, 50, 46, 51, 46, 48, 47, 48, 10},
+
+ "zoneinfo/America/Scoresbysund": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 7, 0, 0, 0, 16, 128, 0, 0, 0, 155, 128, 76, 24, 19, 77, 110, 64, 20, 52, 36, 192, 21, 35, 249, 160, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 127, 255, 255, 255, 0, 1, 2, 3, 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 255, 255, 235, 104, 0, 0, 255, 255, 227, 224, 0, 4, 255, 255, 241, 240, 1, 8, 255, 255, 227, 224, 0, 4, 255, 255, 241, 240, 0, 8, 0, 0, 0, 0, 1, 12, 0, 0, 0, 0, 1, 12, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 49, 0, 43, 48, 48, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 10, 60, 45, 48, 49, 62, 49, 60, 43, 48, 48, 62, 44, 77, 51, 46, 53, 46, 48, 47, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 49, 10},
+
+ "zoneinfo/America/Shiprock": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 162, 101, 254, 144, 163, 132, 6, 0, 164, 69, 224, 144, 164, 143, 166, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 247, 47, 118, 144, 248, 40, 148, 0, 249, 15, 88, 144, 250, 8, 118, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 157, 148, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Sitka": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 8, 0, 0, 0, 34, 128, 0, 0, 0, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 7, 141, 67, 160, 9, 16, 206, 144, 9, 173, 191, 32, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 43, 20, 16, 26, 242, 66, 176, 27, 226, 37, 160, 28, 210, 36, 176, 29, 194, 7, 160, 30, 178, 6, 176, 31, 161, 233, 160, 32, 118, 57, 48, 33, 129, 203, 160, 34, 86, 27, 48, 35, 106, 232, 32, 36, 53, 253, 48, 37, 74, 202, 32, 38, 21, 223, 48, 39, 42, 172, 32, 39, 254, 251, 176, 41, 10, 142, 32, 41, 222, 221, 176, 42, 234, 112, 32, 43, 190, 191, 176, 44, 211, 140, 160, 45, 158, 161, 176, 46, 179, 110, 160, 47, 126, 131, 176, 48, 147, 80, 160, 49, 103, 160, 48, 50, 115, 50, 160, 51, 71, 130, 48, 52, 83, 20, 160, 53, 39, 100, 48, 54, 50, 246, 160, 55, 7, 70, 48, 56, 28, 19, 32, 56, 231, 40, 48, 57, 251, 245, 32, 58, 199, 10, 48, 59, 219, 215, 32, 60, 176, 38, 176, 61, 187, 185, 32, 62, 144, 8, 176, 63, 155, 155, 32, 64, 111, 234, 176, 65, 132, 183, 160, 66, 79, 204, 176, 67, 100, 153, 160, 68, 47, 174, 176, 69, 68, 123, 160, 69, 243, 225, 48, 71, 45, 152, 32, 71, 211, 195, 48, 73, 13, 122, 32, 73, 179, 165, 48, 74, 237, 92, 32, 75, 156, 193, 176, 76, 214, 120, 160, 77, 124, 163, 176, 78, 182, 90, 160, 79, 92, 133, 176, 80, 150, 60, 160, 81, 60, 103, 176, 82, 118, 30, 160, 83, 28, 73, 176, 84, 86, 0, 160, 84, 252, 43, 176, 86, 53, 226, 160, 86, 229, 72, 48, 88, 30, 255, 32, 88, 197, 42, 48, 89, 254, 225, 32, 90, 165, 12, 48, 91, 222, 195, 32, 92, 132, 238, 48, 93, 190, 165, 32, 94, 100, 208, 48, 95, 158, 135, 32, 96, 77, 236, 176, 97, 135, 163, 160, 98, 45, 206, 176, 99, 103, 133, 160, 100, 13, 176, 176, 101, 71, 103, 160, 101, 237, 146, 176, 103, 39, 73, 160, 103, 205, 116, 176, 105, 7, 43, 160, 105, 173, 86, 176, 106, 231, 13, 160, 107, 150, 115, 48, 108, 208, 42, 32, 109, 118, 85, 48, 110, 176, 12, 32, 111, 86, 55, 48, 112, 143, 238, 32, 113, 54, 25, 48, 114, 111, 208, 32, 115, 21, 251, 48, 116, 79, 178, 32, 116, 255, 23, 176, 118, 56, 206, 160, 118, 222, 249, 176, 120, 24, 176, 160, 120, 190, 219, 176, 121, 248, 146, 160, 122, 158, 189, 176, 123, 216, 116, 160, 124, 126, 159, 176, 125, 184, 86, 160, 126, 94, 129, 176, 127, 152, 56, 160, 1, 2, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 5, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 255, 255, 129, 39, 0, 0, 255, 255, 143, 128, 0, 4, 255, 255, 157, 144, 1, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 129, 112, 0, 20, 255, 255, 143, 128, 1, 24, 255, 255, 129, 112, 0, 29, 76, 77, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 80, 68, 84, 0, 89, 83, 84, 0, 65, 75, 68, 84, 0, 65, 75, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 65, 75, 83, 84, 57, 65, 75, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/St_Barthelemy": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/St_Johns": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, 9, 0, 0, 0, 25, 128, 0, 0, 0, 156, 207, 98, 12, 157, 164, 230, 252, 158, 184, 126, 140, 159, 186, 214, 124, 160, 182, 136, 220, 161, 56, 255, 76, 162, 149, 25, 92, 163, 132, 252, 76, 164, 116, 251, 92, 165, 100, 222, 76, 166, 94, 23, 220, 167, 68, 192, 76, 168, 61, 249, 220, 169, 36, 162, 76, 170, 29, 219, 220, 171, 4, 132, 76, 171, 253, 189, 220, 172, 228, 102, 76, 173, 221, 159, 220, 174, 205, 130, 204, 175, 189, 129, 220, 176, 173, 100, 204, 177, 166, 158, 92, 178, 141, 70, 204, 179, 134, 128, 92, 180, 109, 40, 204, 181, 102, 98, 92, 182, 77, 10, 204, 183, 70, 68, 92, 184, 44, 236, 204, 185, 38, 38, 92, 186, 22, 9, 76, 187, 15, 66, 220, 187, 245, 235, 76, 188, 239, 36, 220, 189, 213, 205, 76, 190, 158, 77, 108, 190, 207, 6, 168, 191, 181, 175, 24, 192, 184, 49, 56, 193, 121, 239, 168, 194, 152, 19, 56, 195, 89, 209, 168, 196, 119, 245, 56, 197, 57, 179, 168, 198, 97, 17, 184, 199, 25, 149, 168, 200, 64, 243, 184, 201, 2, 178, 40, 202, 32, 213, 184, 202, 226, 148, 40, 204, 0, 183, 184, 210, 35, 244, 112, 210, 96, 230, 200, 211, 136, 68, 216, 212, 74, 3, 72, 213, 104, 38, 216, 214, 41, 229, 72, 215, 72, 8, 216, 216, 9, 199, 72, 217, 39, 234, 216, 217, 233, 169, 72, 219, 17, 7, 88, 219, 210, 197, 200, 220, 222, 116, 88, 221, 169, 109, 72, 222, 190, 86, 88, 223, 137, 79, 72, 224, 158, 56, 88, 225, 105, 49, 72, 226, 126, 26, 88, 227, 73, 19, 72, 228, 93, 252, 88, 229, 40, 245, 72, 230, 71, 24, 216, 231, 18, 17, 200, 232, 38, 250, 216, 232, 241, 243, 200, 234, 6, 220, 216, 234, 209, 213, 200, 235, 230, 190, 216, 236, 177, 183, 200, 237, 198, 160, 216, 238, 191, 190, 72, 239, 175, 189, 88, 240, 159, 160, 72, 241, 143, 159, 88, 242, 127, 130, 72, 243, 111, 129, 88, 244, 95, 100, 72, 245, 79, 99, 88, 246, 63, 70, 72, 247, 47, 69, 88, 248, 40, 98, 200, 249, 15, 39, 88, 250, 8, 68, 200, 250, 248, 67, 216, 251, 232, 38, 200, 252, 216, 37, 216, 253, 200, 8, 200, 254, 184, 7, 216, 255, 167, 234, 200, 0, 151, 233, 216, 1, 135, 204, 200, 2, 119, 203, 216, 3, 112, 233, 72, 4, 96, 232, 88, 5, 80, 203, 72, 6, 64, 202, 88, 7, 48, 173, 72, 8, 32, 172, 88, 9, 16, 143, 72, 10, 0, 142, 88, 10, 240, 113, 72, 11, 224, 112, 88, 12, 217, 141, 200, 13, 192, 82, 88, 14, 185, 111, 200, 15, 169, 110, 216, 16, 153, 81, 200, 17, 137, 80, 216, 18, 121, 51, 200, 19, 105, 50, 216, 20, 89, 21, 200, 21, 73, 20, 216, 22, 56, 247, 200, 23, 40, 246, 216, 24, 34, 20, 72, 25, 8, 216, 216, 26, 1, 246, 72, 26, 241, 245, 88, 27, 225, 216, 72, 28, 209, 215, 88, 29, 193, 186, 72, 30, 177, 185, 88, 31, 161, 156, 72, 32, 117, 207, 244, 33, 129, 98, 100, 34, 85, 177, 244, 35, 106, 112, 212, 36, 53, 147, 244, 37, 74, 96, 228, 38, 21, 117, 244, 39, 42, 66, 228, 39, 254, 146, 116, 41, 10, 36, 228, 41, 222, 116, 116, 42, 234, 6, 228, 43, 190, 86, 116, 44, 211, 35, 100, 45, 158, 56, 116, 46, 179, 5, 100, 47, 126, 26, 116, 48, 146, 231, 100, 49, 103, 54, 244, 50, 114, 201, 100, 51, 71, 24, 244, 52, 82, 171, 100, 53, 38, 250, 244, 54, 50, 141, 100, 55, 6, 220, 244, 56, 27, 169, 228, 56, 230, 190, 244, 57, 251, 139, 228, 58, 198, 160, 244, 59, 219, 109, 228, 60, 175, 189, 116, 61, 187, 79, 228, 62, 143, 159, 116, 63, 155, 49, 228, 64, 111, 129, 116, 65, 132, 78, 100, 66, 79, 99, 116, 67, 100, 48, 100, 68, 47, 69, 116, 69, 68, 18, 100, 69, 243, 119, 244, 71, 45, 46, 228, 71, 211, 89, 244, 73, 13, 16, 228, 73, 179, 59, 244, 74, 236, 242, 228, 75, 156, 88, 116, 76, 214, 15, 100, 77, 124, 58, 116, 78, 182, 13, 72, 79, 92, 56, 88, 80, 149, 239, 72, 81, 60, 26, 88, 82, 117, 209, 72, 83, 27, 252, 88, 84, 85, 179, 72, 84, 251, 222, 88, 86, 53, 149, 72, 86, 228, 250, 216, 88, 30, 177, 200, 88, 196, 220, 216, 89, 254, 147, 200, 90, 164, 190, 216, 91, 222, 117, 200, 92, 132, 160, 216, 93, 190, 87, 200, 94, 100, 130, 216, 95, 158, 57, 200, 96, 77, 159, 88, 97, 135, 86, 72, 98, 45, 129, 88, 99, 103, 56, 72, 100, 13, 99, 88, 101, 71, 26, 72, 101, 237, 69, 88, 103, 38, 252, 72, 103, 205, 39, 88, 105, 6, 222, 72, 105, 173, 9, 88, 106, 230, 192, 72, 107, 150, 37, 216, 108, 207, 220, 200, 109, 118, 7, 216, 110, 175, 190, 200, 111, 85, 233, 216, 112, 143, 160, 200, 113, 53, 203, 216, 114, 111, 130, 200, 115, 21, 173, 216, 116, 79, 100, 200, 116, 254, 202, 88, 118, 56, 129, 72, 118, 222, 172, 88, 120, 24, 99, 72, 120, 190, 142, 88, 121, 248, 69, 72, 122, 158, 112, 88, 123, 216, 39, 72, 124, 126, 82, 88, 125, 184, 9, 72, 126, 94, 52, 88, 127, 151, 235, 72, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 5, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 255, 255, 206, 148, 0, 0, 255, 255, 220, 164, 1, 4, 255, 255, 206, 148, 0, 8, 255, 255, 220, 216, 1, 4, 255, 255, 206, 200, 0, 8, 255, 255, 220, 216, 1, 12, 255, 255, 220, 216, 1, 16, 255, 255, 234, 232, 1, 20, 255, 255, 220, 216, 1, 4, 76, 77, 84, 0, 78, 68, 84, 0, 78, 83, 84, 0, 78, 80, 84, 0, 78, 87, 84, 0, 78, 68, 68, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 78, 83, 84, 51, 58, 51, 48, 78, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/St_Kitts": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/St_Lucia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/St_Thomas": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/St_Vincent": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Swift_Current": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 134, 253, 150, 24, 158, 184, 175, 144, 159, 187, 7, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 211, 118, 1, 16, 212, 83, 111, 0, 213, 85, 227, 16, 214, 32, 220, 0, 215, 53, 197, 16, 216, 0, 190, 0, 217, 21, 167, 16, 217, 224, 160, 0, 232, 39, 44, 16, 233, 23, 15, 0, 235, 230, 240, 16, 236, 214, 211, 0, 237, 198, 210, 16, 238, 145, 203, 0, 239, 175, 238, 144, 240, 113, 173, 0, 4, 97, 25, 144, 0, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 255, 255, 154, 232, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 171, 160, 0, 20, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Tegucigalpa": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 164, 76, 75, 68, 32, 154, 220, 224, 33, 92, 155, 80, 34, 122, 190, 224, 35, 60, 125, 80, 68, 93, 140, 224, 68, 214, 200, 208, 0, 2, 1, 2, 1, 2, 1, 2, 255, 255, 174, 60, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/America/Thule": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 155, 128, 119, 252, 39, 245, 122, 224, 40, 229, 93, 208, 41, 213, 92, 224, 42, 197, 63, 208, 43, 190, 121, 96, 44, 211, 70, 80, 45, 158, 91, 96, 46, 179, 40, 80, 47, 126, 61, 96, 48, 147, 10, 80, 49, 103, 89, 224, 50, 114, 236, 80, 51, 71, 59, 224, 52, 82, 206, 80, 53, 39, 29, 224, 54, 50, 176, 80, 55, 6, 255, 224, 56, 27, 204, 208, 56, 230, 225, 224, 57, 251, 174, 208, 58, 198, 195, 224, 59, 219, 144, 208, 60, 175, 224, 96, 61, 187, 114, 208, 62, 143, 194, 96, 63, 155, 84, 208, 64, 111, 164, 96, 65, 132, 113, 80, 66, 79, 134, 96, 67, 100, 83, 80, 68, 47, 104, 96, 69, 68, 53, 80, 69, 243, 154, 224, 71, 45, 81, 208, 71, 211, 124, 224, 73, 13, 51, 208, 73, 179, 94, 224, 74, 237, 21, 208, 75, 156, 123, 96, 76, 214, 50, 80, 77, 124, 93, 96, 78, 182, 20, 80, 79, 92, 63, 96, 80, 149, 246, 80, 81, 60, 33, 96, 82, 117, 216, 80, 83, 28, 3, 96, 84, 85, 186, 80, 84, 251, 229, 96, 86, 53, 156, 80, 86, 229, 1, 224, 88, 30, 184, 208, 88, 196, 227, 224, 89, 254, 154, 208, 90, 164, 197, 224, 91, 222, 124, 208, 92, 132, 167, 224, 93, 190, 94, 208, 94, 100, 137, 224, 95, 158, 64, 208, 96, 77, 166, 96, 97, 135, 93, 80, 98, 45, 136, 96, 99, 103, 63, 80, 100, 13, 106, 96, 101, 71, 33, 80, 101, 237, 76, 96, 103, 39, 3, 80, 103, 205, 46, 96, 105, 6, 229, 80, 105, 173, 16, 96, 106, 230, 199, 80, 107, 150, 44, 224, 108, 207, 227, 208, 109, 118, 14, 224, 110, 175, 197, 208, 111, 85, 240, 224, 112, 143, 167, 208, 113, 53, 210, 224, 114, 111, 137, 208, 115, 21, 180, 224, 116, 79, 107, 208, 116, 254, 209, 96, 118, 56, 136, 80, 118, 222, 179, 96, 120, 24, 106, 80, 120, 190, 149, 96, 121, 248, 76, 80, 122, 158, 119, 96, 123, 216, 46, 80, 124, 126, 89, 96, 125, 184, 16, 80, 126, 94, 59, 96, 127, 151, 242, 80, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 191, 132, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 65, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Thunder_Bay": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 143, 36, 123, 224, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 8, 32, 193, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 1, 2, 3, 4, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 255, 255, 172, 84, 0, 0, 255, 255, 171, 160, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 255, 255, 199, 192, 1, 20, 76, 77, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Tijuana": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 165, 182, 246, 128, 169, 121, 79, 112, 175, 242, 124, 240, 182, 102, 100, 112, 183, 27, 16, 0, 184, 10, 242, 240, 203, 234, 141, 128, 210, 35, 244, 112, 210, 153, 186, 112, 215, 27, 89, 0, 216, 145, 180, 240, 226, 126, 75, 144, 227, 73, 82, 144, 228, 94, 45, 144, 229, 41, 52, 144, 230, 71, 74, 16, 231, 18, 81, 16, 232, 39, 44, 16, 232, 242, 51, 16, 234, 7, 14, 16, 234, 210, 21, 16, 235, 230, 240, 16, 236, 177, 247, 16, 237, 198, 210, 16, 238, 145, 217, 16, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 70, 15, 130, 160, 71, 36, 79, 144, 71, 248, 159, 32, 73, 4, 49, 144, 73, 216, 129, 32, 74, 228, 19, 144, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 0, 1, 2, 1, 2, 3, 2, 4, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 146, 76, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 157, 144, 1, 20, 76, 77, 84, 0, 77, 83, 84, 0, 80, 83, 84, 0, 80, 68, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Toronto": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 147, 112, 159, 186, 235, 96, 160, 135, 46, 200, 161, 154, 177, 64, 162, 148, 6, 240, 163, 85, 169, 64, 164, 134, 93, 240, 165, 40, 120, 96, 166, 102, 63, 240, 167, 12, 78, 224, 168, 70, 33, 240, 168, 236, 48, 224, 170, 28, 201, 112, 170, 213, 77, 96, 171, 252, 171, 112, 172, 181, 47, 96, 173, 220, 141, 112, 174, 149, 17, 96, 175, 188, 111, 112, 176, 126, 45, 224, 177, 156, 81, 112, 178, 103, 74, 96, 179, 124, 51, 112, 180, 71, 44, 96, 181, 92, 21, 112, 182, 39, 14, 96, 183, 59, 247, 112, 184, 6, 240, 96, 185, 37, 19, 240, 185, 230, 210, 96, 187, 4, 245, 240, 187, 207, 238, 224, 188, 228, 215, 240, 189, 175, 208, 224, 190, 196, 185, 240, 191, 143, 178, 224, 192, 164, 155, 240, 193, 111, 148, 224, 194, 132, 125, 240, 195, 79, 118, 224, 196, 100, 95, 240, 197, 47, 88, 224, 198, 77, 124, 112, 199, 15, 58, 224, 200, 45, 94, 112, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 211, 117, 228, 240, 212, 64, 221, 224, 213, 85, 170, 208, 214, 32, 163, 192, 215, 53, 140, 208, 216, 0, 133, 192, 217, 21, 110, 208, 218, 51, 118, 64, 218, 254, 167, 112, 220, 19, 116, 96, 220, 222, 137, 112, 221, 169, 130, 96, 222, 190, 107, 112, 223, 137, 100, 96, 224, 158, 77, 112, 225, 105, 70, 96, 226, 126, 47, 112, 227, 73, 40, 96, 228, 94, 17, 112, 229, 41, 10, 96, 230, 71, 45, 240, 231, 18, 38, 224, 232, 39, 15, 240, 233, 22, 242, 224, 234, 6, 241, 240, 234, 246, 212, 224, 235, 230, 211, 240, 236, 214, 182, 224, 237, 198, 181, 240, 238, 191, 211, 96, 239, 175, 210, 112, 240, 159, 181, 96, 241, 143, 180, 112, 242, 127, 151, 96, 243, 111, 150, 112, 244, 95, 121, 96, 245, 79, 120, 112, 246, 63, 91, 96, 247, 47, 90, 112, 248, 40, 119, 224, 249, 15, 60, 112, 250, 8, 89, 224, 250, 248, 88, 240, 251, 232, 59, 224, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 8, 32, 193, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 181, 148, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 76, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Tortola": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Vancouver": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 189, 160, 159, 187, 21, 144, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 211, 118, 15, 32, 212, 83, 125, 16, 213, 85, 241, 32, 214, 32, 234, 16, 215, 53, 211, 32, 216, 0, 204, 16, 217, 21, 181, 32, 217, 224, 174, 16, 218, 254, 209, 160, 219, 192, 144, 16, 220, 222, 179, 160, 221, 169, 172, 144, 222, 190, 149, 160, 223, 137, 142, 144, 224, 158, 119, 160, 225, 105, 112, 144, 226, 126, 89, 160, 227, 73, 82, 144, 228, 94, 59, 160, 229, 41, 52, 144, 230, 71, 88, 32, 231, 18, 81, 16, 232, 39, 58, 32, 232, 242, 51, 16, 234, 7, 28, 32, 234, 210, 21, 16, 235, 230, 254, 32, 236, 177, 247, 16, 237, 198, 224, 32, 238, 145, 217, 16, 239, 175, 252, 160, 240, 113, 187, 16, 241, 143, 222, 160, 242, 127, 193, 144, 243, 111, 192, 160, 244, 95, 163, 144, 245, 79, 162, 160, 246, 63, 133, 144, 247, 47, 132, 160, 248, 40, 162, 16, 249, 15, 102, 160, 250, 8, 132, 16, 250, 248, 131, 32, 251, 232, 102, 16, 252, 216, 101, 32, 253, 200, 72, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 8, 32, 235, 160, 9, 16, 206, 144, 10, 0, 205, 160, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 140, 148, 0, 0, 255, 255, 157, 144, 1, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 76, 77, 84, 0, 80, 68, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Virgin": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 147, 55, 51, 172, 0, 1, 255, 255, 198, 84, 0, 0, 255, 255, 199, 192, 0, 4, 76, 77, 84, 0, 65, 83, 84, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 10},
+
+ "zoneinfo/America/Whitehorse": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 8, 0, 0, 0, 33, 128, 0, 0, 0, 158, 184, 203, 176, 159, 187, 35, 160, 160, 208, 12, 176, 161, 162, 210, 128, 203, 137, 40, 176, 210, 35, 244, 112, 210, 97, 52, 32, 247, 47, 118, 144, 248, 40, 162, 16, 251, 29, 95, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 2, 1, 2, 1, 2, 3, 4, 2, 5, 2, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 255, 255, 129, 100, 0, 0, 255, 255, 143, 128, 1, 4, 255, 255, 129, 112, 0, 8, 255, 255, 143, 128, 1, 12, 255, 255, 143, 128, 1, 16, 255, 255, 157, 144, 1, 20, 255, 255, 143, 128, 0, 25, 255, 255, 157, 144, 1, 29, 76, 77, 84, 0, 89, 68, 84, 0, 89, 83, 84, 0, 89, 87, 84, 0, 89, 80, 84, 0, 89, 68, 68, 84, 0, 80, 83, 84, 0, 80, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Winnipeg": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 7, 0, 0, 0, 20, 128, 0, 0, 0, 155, 1, 251, 224, 155, 195, 186, 80, 158, 184, 161, 128, 159, 186, 249, 112, 194, 160, 59, 128, 195, 79, 132, 240, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 136, 104, 0, 212, 83, 96, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 219, 0, 7, 0, 219, 200, 92, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 41, 24, 112, 230, 71, 60, 0, 231, 18, 52, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 145, 188, 240, 243, 111, 164, 128, 244, 49, 98, 240, 249, 15, 74, 128, 250, 8, 118, 0, 250, 248, 103, 0, 251, 232, 88, 0, 252, 216, 73, 0, 253, 200, 58, 0, 254, 184, 43, 0, 255, 168, 28, 0, 0, 152, 13, 0, 1, 135, 254, 0, 2, 119, 239, 0, 3, 113, 26, 128, 4, 97, 11, 128, 5, 80, 252, 128, 6, 64, 237, 128, 7, 48, 222, 128, 8, 32, 207, 128, 9, 16, 192, 128, 10, 0, 177, 128, 10, 240, 162, 128, 11, 224, 147, 128, 12, 217, 191, 0, 13, 192, 117, 128, 14, 185, 161, 0, 15, 169, 146, 0, 16, 153, 131, 0, 17, 137, 116, 0, 18, 121, 101, 0, 19, 105, 86, 0, 20, 89, 71, 0, 21, 73, 56, 0, 22, 57, 41, 0, 23, 41, 26, 0, 24, 34, 69, 128, 25, 8, 252, 0, 26, 2, 39, 128, 26, 242, 24, 128, 27, 226, 9, 128, 28, 209, 250, 128, 29, 193, 235, 128, 30, 177, 220, 128, 31, 161, 205, 128, 32, 118, 15, 0, 33, 129, 175, 128, 34, 85, 241, 0, 35, 106, 204, 0, 36, 53, 211, 0, 37, 74, 174, 0, 38, 21, 181, 0, 39, 42, 144, 0, 39, 254, 209, 128, 41, 10, 114, 0, 41, 222, 179, 128, 42, 234, 84, 0, 43, 190, 149, 128, 44, 211, 112, 128, 45, 158, 119, 128, 46, 179, 82, 128, 47, 126, 89, 128, 48, 147, 52, 128, 49, 103, 118, 0, 50, 115, 22, 128, 51, 71, 88, 0, 52, 82, 248, 128, 53, 39, 58, 0, 54, 50, 218, 128, 55, 7, 28, 0, 56, 27, 247, 0, 56, 230, 254, 0, 57, 251, 217, 0, 58, 198, 224, 0, 59, 219, 187, 0, 60, 175, 252, 128, 61, 187, 157, 0, 62, 143, 222, 128, 63, 155, 127, 0, 64, 111, 192, 128, 65, 132, 155, 128, 66, 79, 162, 128, 67, 100, 125, 128, 67, 183, 111, 224, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 164, 236, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Yakutat": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 7, 0, 0, 0, 30, 128, 0, 0, 0, 203, 137, 40, 176, 210, 35, 244, 112, 210, 97, 52, 32, 254, 184, 85, 48, 255, 168, 56, 32, 0, 152, 55, 48, 1, 136, 26, 32, 2, 120, 25, 48, 3, 113, 54, 160, 4, 97, 53, 176, 5, 81, 24, 160, 6, 65, 23, 176, 7, 48, 250, 160, 7, 141, 81, 176, 9, 16, 220, 160, 9, 173, 205, 48, 10, 240, 190, 160, 11, 224, 189, 176, 12, 217, 219, 32, 13, 192, 159, 176, 14, 185, 189, 32, 15, 169, 188, 48, 16, 153, 159, 32, 17, 137, 158, 48, 18, 121, 129, 32, 19, 105, 128, 48, 20, 89, 99, 32, 21, 73, 98, 48, 22, 57, 69, 32, 23, 41, 68, 48, 24, 34, 97, 160, 25, 9, 38, 48, 26, 2, 67, 160, 26, 43, 20, 16, 26, 242, 66, 176, 27, 226, 37, 160, 28, 210, 36, 176, 29, 194, 7, 160, 30, 178, 6, 176, 31, 161, 233, 160, 32, 118, 57, 48, 33, 129, 203, 160, 34, 86, 27, 48, 35, 106, 232, 32, 36, 53, 253, 48, 37, 74, 202, 32, 38, 21, 223, 48, 39, 42, 172, 32, 39, 254, 251, 176, 41, 10, 142, 32, 41, 222, 221, 176, 42, 234, 112, 32, 43, 190, 191, 176, 44, 211, 140, 160, 45, 158, 161, 176, 46, 179, 110, 160, 47, 126, 131, 176, 48, 147, 80, 160, 49, 103, 160, 48, 50, 115, 50, 160, 51, 71, 130, 48, 52, 83, 20, 160, 53, 39, 100, 48, 54, 50, 246, 160, 55, 7, 70, 48, 56, 28, 19, 32, 56, 231, 40, 48, 57, 251, 245, 32, 58, 199, 10, 48, 59, 219, 215, 32, 60, 176, 38, 176, 61, 187, 185, 32, 62, 144, 8, 176, 63, 155, 155, 32, 64, 111, 234, 176, 65, 132, 183, 160, 66, 79, 204, 176, 67, 100, 153, 160, 68, 47, 174, 176, 69, 68, 123, 160, 69, 243, 225, 48, 71, 45, 152, 32, 71, 211, 195, 48, 73, 13, 122, 32, 73, 179, 165, 48, 74, 237, 92, 32, 75, 156, 193, 176, 76, 214, 120, 160, 77, 124, 163, 176, 78, 182, 90, 160, 79, 92, 133, 176, 80, 150, 60, 160, 81, 60, 103, 176, 82, 118, 30, 160, 83, 28, 73, 176, 84, 86, 0, 160, 84, 252, 43, 176, 86, 53, 226, 160, 86, 229, 72, 48, 88, 30, 255, 32, 88, 197, 42, 48, 89, 254, 225, 32, 90, 165, 12, 48, 91, 222, 195, 32, 92, 132, 238, 48, 93, 190, 165, 32, 94, 100, 208, 48, 95, 158, 135, 32, 96, 77, 236, 176, 97, 135, 163, 160, 98, 45, 206, 176, 99, 103, 133, 160, 100, 13, 176, 176, 101, 71, 103, 160, 101, 237, 146, 176, 103, 39, 73, 160, 103, 205, 116, 176, 105, 7, 43, 160, 105, 173, 86, 176, 106, 231, 13, 160, 107, 150, 115, 48, 108, 208, 42, 32, 109, 118, 85, 48, 110, 176, 12, 32, 111, 86, 55, 48, 112, 143, 238, 32, 113, 54, 25, 48, 114, 111, 208, 32, 115, 21, 251, 48, 116, 79, 178, 32, 116, 255, 23, 176, 118, 56, 206, 160, 118, 222, 249, 176, 120, 24, 176, 160, 120, 190, 219, 176, 121, 248, 146, 160, 122, 158, 189, 176, 123, 216, 116, 160, 124, 126, 159, 176, 125, 184, 86, 160, 126, 94, 129, 176, 127, 152, 56, 160, 1, 2, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 125, 1, 0, 0, 255, 255, 129, 112, 0, 4, 255, 255, 143, 128, 1, 8, 255, 255, 143, 128, 1, 12, 255, 255, 143, 128, 1, 16, 255, 255, 143, 128, 1, 20, 255, 255, 129, 112, 0, 25, 76, 77, 84, 0, 89, 83, 84, 0, 89, 87, 84, 0, 89, 80, 84, 0, 89, 68, 84, 0, 65, 75, 68, 84, 0, 65, 75, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 65, 75, 83, 84, 57, 65, 75, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/America/Yellowknife": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 6, 0, 0, 0, 25, 128, 0, 0, 0, 190, 42, 24, 0, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 247, 47, 90, 112, 248, 40, 133, 240, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 0, 3, 1, 2, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 0, 0, 0, 0, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 171, 160, 1, 8, 255, 255, 157, 144, 0, 12, 255, 255, 185, 176, 1, 16, 255, 255, 171, 160, 1, 21, 45, 48, 48, 0, 77, 87, 84, 0, 77, 80, 84, 0, 77, 83, 84, 0, 77, 68, 68, 84, 0, 77, 68, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Antarctica/Casey": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 254, 30, 204, 128, 74, 218, 6, 32, 75, 143, 202, 240, 78, 169, 156, 32, 79, 67, 205, 144, 88, 10, 59, 128, 127, 255, 255, 255, 0, 1, 2, 1, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 154, 176, 0, 8, 0, 0, 112, 128, 0, 4, 0, 0, 154, 176, 0, 8, 45, 48, 48, 0, 43, 48, 56, 0, 43, 49, 49, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Antarctica/Davis": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 231, 156, 64, 0, 246, 71, 223, 16, 254, 71, 171, 0, 74, 218, 20, 48, 75, 151, 250, 64, 78, 169, 170, 48, 79, 67, 247, 192, 127, 255, 255, 255, 0, 1, 0, 1, 2, 3, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 98, 112, 0, 4, 0, 0, 70, 80, 0, 8, 0, 0, 98, 112, 0, 4, 45, 48, 48, 0, 43, 48, 55, 0, 43, 48, 53, 0, 0, 0, 0, 1, 0, 0, 0, 1, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Antarctica/DumontDUrville": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 212, 188, 118, 128, 222, 52, 96, 96, 231, 60, 2, 128, 127, 255, 255, 255, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 140, 160, 0, 4, 45, 48, 48, 0, 43, 49, 48, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Antarctica/Macquarie": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 7, 0, 0, 0, 18, 128, 0, 0, 0, 155, 213, 120, 128, 156, 188, 32, 240, 160, 135, 180, 96, 215, 12, 104, 0, 251, 194, 141, 0, 252, 178, 126, 0, 253, 199, 89, 0, 254, 118, 176, 128, 255, 167, 59, 0, 0, 86, 146, 128, 1, 135, 29, 0, 2, 63, 175, 0, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 3, 79, 0, 24, 33, 100, 128, 24, 227, 49, 0, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 103, 39, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 38, 2, 95, 0, 39, 41, 175, 0, 39, 244, 182, 0, 40, 237, 225, 128, 41, 212, 152, 0, 42, 205, 195, 128, 43, 180, 122, 0, 44, 173, 165, 128, 45, 148, 92, 0, 46, 141, 135, 128, 47, 116, 62, 0, 48, 109, 105, 128, 49, 93, 90, 128, 50, 86, 134, 0, 51, 61, 60, 128, 52, 54, 104, 0, 53, 29, 30, 128, 54, 22, 74, 0, 54, 253, 0, 128, 55, 246, 44, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 191, 42, 128, 60, 165, 225, 0, 61, 159, 12, 128, 62, 133, 195, 0, 63, 126, 238, 128, 64, 101, 165, 0, 65, 94, 208, 128, 66, 69, 135, 0, 67, 62, 178, 128, 68, 46, 163, 128, 69, 30, 148, 128, 70, 5, 75, 0, 71, 7, 177, 0, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 127, 255, 255, 255, 1, 2, 1, 3, 1, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 154, 176, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 154, 176, 1, 9, 0, 0, 140, 160, 0, 4, 0, 0, 154, 176, 0, 14, 45, 48, 48, 0, 65, 69, 83, 84, 0, 65, 69, 68, 84, 0, 43, 49, 49, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Antarctica/Mawson": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 226, 32, 50, 128, 74, 218, 34, 64, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 84, 96, 0, 4, 0, 0, 70, 80, 0, 8, 45, 48, 48, 0, 43, 48, 54, 0, 43, 48, 53, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Antarctica/McMurdo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 7, 0, 0, 0, 19, 128, 0, 0, 0, 176, 180, 178, 232, 177, 81, 135, 88, 178, 120, 229, 104, 179, 67, 229, 96, 180, 88, 199, 104, 181, 35, 199, 96, 182, 56, 169, 104, 183, 3, 169, 96, 184, 24, 139, 104, 184, 236, 197, 224, 185, 248, 109, 104, 186, 204, 167, 224, 187, 216, 79, 104, 188, 227, 232, 224, 189, 174, 246, 232, 190, 195, 202, 224, 191, 142, 216, 232, 192, 163, 172, 224, 193, 110, 186, 232, 194, 131, 142, 224, 195, 78, 156, 232, 196, 99, 112, 224, 197, 46, 126, 232, 198, 76, 141, 96, 199, 14, 96, 232, 200, 44, 111, 96, 200, 247, 125, 104, 210, 218, 154, 64, 9, 24, 253, 224, 9, 172, 165, 224, 10, 239, 165, 96, 11, 158, 252, 224, 12, 216, 193, 224, 13, 126, 222, 224, 14, 184, 163, 224, 15, 94, 192, 224, 16, 152, 133, 224, 17, 62, 162, 224, 18, 120, 103, 224, 19, 30, 132, 224, 20, 88, 73, 224, 20, 254, 102, 224, 22, 56, 43, 224, 22, 231, 131, 96, 24, 33, 72, 96, 24, 199, 101, 96, 26, 1, 42, 96, 26, 167, 71, 96, 27, 225, 12, 96, 28, 135, 41, 96, 29, 192, 238, 96, 30, 103, 11, 96, 31, 160, 208, 96, 32, 70, 237, 96, 33, 128, 178, 96, 34, 48, 9, 224, 35, 105, 206, 224, 36, 15, 235, 224, 37, 46, 1, 96, 38, 2, 66, 224, 39, 13, 227, 96, 39, 226, 36, 224, 40, 237, 197, 96, 41, 194, 6, 224, 42, 205, 167, 96, 43, 171, 35, 96, 44, 173, 137, 96, 45, 139, 5, 96, 46, 141, 107, 96, 47, 106, 231, 96, 48, 109, 77, 96, 49, 74, 201, 96, 50, 86, 105, 224, 51, 42, 171, 96, 52, 54, 75, 224, 53, 10, 141, 96, 54, 22, 45, 224, 54, 243, 169, 224, 55, 246, 15, 224, 56, 211, 139, 224, 57, 213, 241, 224, 58, 179, 109, 224, 59, 191, 14, 96, 60, 147, 79, 224, 61, 158, 240, 96, 62, 115, 49, 224, 63, 126, 210, 96, 64, 92, 78, 96, 65, 94, 180, 96, 66, 60, 48, 96, 67, 62, 150, 96, 68, 28, 18, 96, 69, 30, 120, 96, 69, 251, 244, 96, 70, 254, 90, 96, 71, 247, 133, 224, 72, 222, 60, 96, 73, 215, 103, 224, 74, 190, 30, 96, 75, 183, 73, 224, 76, 158, 0, 96, 77, 151, 43, 224, 78, 125, 226, 96, 79, 119, 13, 224, 80, 102, 254, 224, 81, 96, 42, 96, 82, 70, 224, 224, 83, 64, 12, 96, 84, 38, 194, 224, 85, 31, 238, 96, 86, 6, 164, 224, 86, 255, 208, 96, 87, 230, 134, 224, 88, 223, 178, 96, 89, 198, 104, 224, 90, 191, 148, 96, 91, 175, 133, 96, 92, 168, 176, 224, 93, 143, 103, 96, 94, 136, 146, 224, 95, 111, 73, 96, 96, 104, 116, 224, 97, 79, 43, 96, 98, 72, 86, 224, 99, 47, 13, 96, 100, 40, 56, 224, 101, 14, 239, 96, 102, 17, 85, 96, 102, 248, 11, 224, 103, 241, 55, 96, 104, 215, 237, 224, 105, 209, 25, 96, 106, 183, 207, 224, 107, 176, 251, 96, 108, 151, 177, 224, 109, 144, 221, 96, 110, 119, 147, 224, 111, 112, 191, 96, 112, 96, 176, 96, 113, 89, 219, 224, 114, 64, 146, 96, 115, 57, 189, 224, 116, 32, 116, 96, 117, 25, 159, 224, 118, 0, 86, 96, 118, 249, 129, 224, 119, 224, 56, 96, 120, 217, 99, 224, 121, 192, 26, 96, 122, 185, 69, 224, 123, 169, 54, 224, 124, 162, 98, 96, 125, 137, 24, 224, 126, 130, 68, 96, 127, 104, 250, 224, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 0, 0, 163, 216, 0, 0, 0, 0, 175, 200, 1, 4, 0, 0, 161, 184, 0, 9, 0, 0, 168, 192, 1, 4, 0, 0, 182, 208, 1, 14, 0, 0, 168, 192, 0, 4, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 78, 90, 83, 84, 0, 78, 90, 77, 84, 0, 78, 90, 68, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 78, 90, 83, 84, 45, 49, 50, 78, 90, 68, 84, 44, 77, 57, 46, 53, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Antarctica/Palmer": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 8, 0, 0, 0, 16, 128, 0, 0, 0, 246, 152, 173, 0, 246, 230, 159, 176, 248, 19, 67, 192, 248, 199, 211, 48, 249, 244, 119, 64, 250, 211, 54, 176, 251, 195, 53, 192, 252, 188, 83, 48, 253, 172, 82, 64, 254, 156, 53, 48, 255, 140, 52, 64, 7, 163, 74, 176, 8, 36, 111, 160, 23, 48, 188, 176, 24, 6, 93, 192, 24, 209, 86, 176, 25, 230, 63, 192, 26, 177, 56, 176, 27, 207, 92, 64, 28, 145, 26, 176, 29, 175, 62, 64, 30, 112, 252, 176, 31, 143, 32, 64, 32, 127, 3, 48, 33, 111, 2, 64, 34, 57, 251, 48, 35, 78, 228, 64, 36, 25, 221, 48, 37, 56, 0, 192, 37, 249, 191, 48, 38, 242, 248, 192, 39, 217, 161, 48, 40, 247, 196, 192, 41, 194, 189, 176, 42, 215, 166, 192, 43, 162, 159, 176, 44, 183, 136, 192, 45, 130, 129, 176, 46, 151, 106, 192, 47, 98, 99, 176, 48, 128, 135, 64, 49, 66, 69, 176, 50, 96, 105, 64, 51, 61, 215, 48, 52, 64, 75, 64, 53, 11, 68, 48, 54, 13, 184, 64, 55, 6, 213, 176, 56, 0, 15, 64, 56, 203, 8, 48, 57, 233, 43, 192, 58, 170, 234, 48, 59, 201, 13, 192, 60, 138, 204, 48, 61, 168, 239, 192, 62, 106, 174, 48, 63, 136, 209, 192, 64, 83, 202, 176, 65, 104, 179, 192, 66, 51, 172, 176, 67, 72, 149, 192, 68, 19, 142, 176, 69, 49, 178, 64, 69, 243, 112, 176, 71, 17, 148, 64, 71, 239, 2, 48, 72, 241, 118, 64, 73, 188, 111, 48, 74, 209, 88, 64, 75, 184, 0, 176, 76, 177, 58, 64, 77, 198, 7, 48, 78, 80, 130, 192, 79, 156, 174, 176, 80, 66, 217, 192, 81, 124, 144, 176, 82, 43, 246, 64, 83, 92, 114, 176, 84, 11, 216, 64, 87, 55, 230, 48, 87, 175, 236, 192, 88, 67, 134, 176, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 3, 4, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 4, 4, 0, 0, 0, 0, 0, 0, 255, 255, 199, 192, 0, 4, 255, 255, 213, 208, 1, 8, 255, 255, 227, 224, 1, 12, 255, 255, 213, 208, 0, 8, 255, 255, 213, 208, 1, 8, 255, 255, 199, 192, 0, 4, 255, 255, 213, 208, 0, 8, 45, 48, 48, 0, 45, 48, 52, 0, 45, 48, 51, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/Antarctica/Rothera": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 13, 2, 45, 0, 127, 255, 255, 255, 0, 1, 1, 0, 0, 0, 0, 0, 0, 255, 255, 213, 208, 0, 4, 45, 48, 48, 0, 45, 48, 51, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/Antarctica/South_Pole": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 7, 0, 0, 0, 19, 128, 0, 0, 0, 176, 180, 178, 232, 177, 81, 135, 88, 178, 120, 229, 104, 179, 67, 229, 96, 180, 88, 199, 104, 181, 35, 199, 96, 182, 56, 169, 104, 183, 3, 169, 96, 184, 24, 139, 104, 184, 236, 197, 224, 185, 248, 109, 104, 186, 204, 167, 224, 187, 216, 79, 104, 188, 227, 232, 224, 189, 174, 246, 232, 190, 195, 202, 224, 191, 142, 216, 232, 192, 163, 172, 224, 193, 110, 186, 232, 194, 131, 142, 224, 195, 78, 156, 232, 196, 99, 112, 224, 197, 46, 126, 232, 198, 76, 141, 96, 199, 14, 96, 232, 200, 44, 111, 96, 200, 247, 125, 104, 210, 218, 154, 64, 9, 24, 253, 224, 9, 172, 165, 224, 10, 239, 165, 96, 11, 158, 252, 224, 12, 216, 193, 224, 13, 126, 222, 224, 14, 184, 163, 224, 15, 94, 192, 224, 16, 152, 133, 224, 17, 62, 162, 224, 18, 120, 103, 224, 19, 30, 132, 224, 20, 88, 73, 224, 20, 254, 102, 224, 22, 56, 43, 224, 22, 231, 131, 96, 24, 33, 72, 96, 24, 199, 101, 96, 26, 1, 42, 96, 26, 167, 71, 96, 27, 225, 12, 96, 28, 135, 41, 96, 29, 192, 238, 96, 30, 103, 11, 96, 31, 160, 208, 96, 32, 70, 237, 96, 33, 128, 178, 96, 34, 48, 9, 224, 35, 105, 206, 224, 36, 15, 235, 224, 37, 46, 1, 96, 38, 2, 66, 224, 39, 13, 227, 96, 39, 226, 36, 224, 40, 237, 197, 96, 41, 194, 6, 224, 42, 205, 167, 96, 43, 171, 35, 96, 44, 173, 137, 96, 45, 139, 5, 96, 46, 141, 107, 96, 47, 106, 231, 96, 48, 109, 77, 96, 49, 74, 201, 96, 50, 86, 105, 224, 51, 42, 171, 96, 52, 54, 75, 224, 53, 10, 141, 96, 54, 22, 45, 224, 54, 243, 169, 224, 55, 246, 15, 224, 56, 211, 139, 224, 57, 213, 241, 224, 58, 179, 109, 224, 59, 191, 14, 96, 60, 147, 79, 224, 61, 158, 240, 96, 62, 115, 49, 224, 63, 126, 210, 96, 64, 92, 78, 96, 65, 94, 180, 96, 66, 60, 48, 96, 67, 62, 150, 96, 68, 28, 18, 96, 69, 30, 120, 96, 69, 251, 244, 96, 70, 254, 90, 96, 71, 247, 133, 224, 72, 222, 60, 96, 73, 215, 103, 224, 74, 190, 30, 96, 75, 183, 73, 224, 76, 158, 0, 96, 77, 151, 43, 224, 78, 125, 226, 96, 79, 119, 13, 224, 80, 102, 254, 224, 81, 96, 42, 96, 82, 70, 224, 224, 83, 64, 12, 96, 84, 38, 194, 224, 85, 31, 238, 96, 86, 6, 164, 224, 86, 255, 208, 96, 87, 230, 134, 224, 88, 223, 178, 96, 89, 198, 104, 224, 90, 191, 148, 96, 91, 175, 133, 96, 92, 168, 176, 224, 93, 143, 103, 96, 94, 136, 146, 224, 95, 111, 73, 96, 96, 104, 116, 224, 97, 79, 43, 96, 98, 72, 86, 224, 99, 47, 13, 96, 100, 40, 56, 224, 101, 14, 239, 96, 102, 17, 85, 96, 102, 248, 11, 224, 103, 241, 55, 96, 104, 215, 237, 224, 105, 209, 25, 96, 106, 183, 207, 224, 107, 176, 251, 96, 108, 151, 177, 224, 109, 144, 221, 96, 110, 119, 147, 224, 111, 112, 191, 96, 112, 96, 176, 96, 113, 89, 219, 224, 114, 64, 146, 96, 115, 57, 189, 224, 116, 32, 116, 96, 117, 25, 159, 224, 118, 0, 86, 96, 118, 249, 129, 224, 119, 224, 56, 96, 120, 217, 99, 224, 121, 192, 26, 96, 122, 185, 69, 224, 123, 169, 54, 224, 124, 162, 98, 96, 125, 137, 24, 224, 126, 130, 68, 96, 127, 104, 250, 224, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 0, 0, 163, 216, 0, 0, 0, 0, 175, 200, 1, 4, 0, 0, 161, 184, 0, 9, 0, 0, 168, 192, 1, 4, 0, 0, 182, 208, 1, 14, 0, 0, 168, 192, 0, 4, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 78, 90, 83, 84, 0, 78, 90, 77, 84, 0, 78, 90, 68, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 78, 90, 83, 84, 45, 49, 50, 78, 90, 68, 84, 44, 77, 57, 46, 53, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Antarctica/Syowa": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 231, 177, 88, 0, 127, 255, 255, 255, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 42, 48, 0, 4, 45, 48, 48, 0, 43, 48, 51, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Antarctica/Troll": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 66, 13, 71, 0, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 127, 255, 255, 255, 0, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 45, 48, 48, 0, 43, 48, 50, 0, 43, 48, 48, 0, 0, 1, 1, 0, 0, 1, 1, 0, 10, 60, 43, 48, 48, 62, 48, 60, 43, 48, 50, 62, 45, 50, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Antarctica/Vostok": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 233, 88, 137, 128, 127, 255, 255, 255, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 84, 96, 0, 4, 45, 48, 48, 0, 43, 48, 54, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Arctic/Longyearbyen": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 39, 227, 0, 155, 212, 123, 96, 200, 183, 77, 96, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 210, 98, 7, 16, 235, 175, 32, 144, 236, 168, 76, 16, 237, 152, 61, 16, 238, 136, 46, 16, 239, 120, 31, 16, 240, 104, 16, 16, 241, 88, 1, 16, 242, 71, 242, 16, 243, 55, 227, 16, 244, 39, 212, 16, 245, 23, 197, 16, 246, 16, 240, 144, 247, 47, 6, 16, 247, 240, 210, 144, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 10, 20, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Asia/Aden": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 213, 27, 54, 180, 127, 255, 255, 255, 0, 1, 1, 0, 0, 43, 204, 0, 0, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 43, 48, 51, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Asia/Almaty": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 123, 220, 181, 163, 239, 48, 21, 39, 125, 160, 22, 24, 178, 16, 23, 8, 177, 32, 23, 249, 229, 144, 24, 233, 228, 160, 25, 219, 25, 16, 26, 204, 105, 160, 27, 188, 118, 192, 28, 172, 103, 192, 29, 156, 88, 192, 30, 140, 73, 192, 31, 124, 58, 192, 32, 108, 43, 192, 33, 92, 28, 192, 34, 76, 13, 192, 35, 59, 254, 192, 36, 43, 239, 192, 37, 27, 224, 192, 38, 11, 209, 192, 39, 4, 253, 64, 39, 244, 238, 64, 40, 228, 237, 80, 41, 120, 149, 80, 41, 212, 208, 64, 42, 196, 193, 64, 43, 180, 178, 64, 44, 164, 163, 64, 45, 148, 148, 64, 46, 132, 133, 64, 47, 116, 118, 64, 48, 100, 103, 64, 49, 93, 146, 192, 50, 114, 109, 192, 51, 61, 116, 192, 52, 82, 79, 192, 53, 29, 86, 192, 54, 50, 49, 192, 54, 253, 56, 192, 56, 27, 78, 64, 56, 221, 26, 192, 57, 251, 48, 64, 58, 188, 252, 192, 59, 219, 18, 64, 60, 166, 25, 64, 61, 186, 244, 64, 62, 133, 251, 64, 63, 154, 214, 64, 64, 101, 221, 64, 65, 131, 242, 192, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 0, 0, 72, 36, 0, 0, 0, 0, 70, 80, 0, 4, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 0, 12, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 4, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 0, 12, 76, 77, 84, 0, 43, 48, 53, 0, 43, 48, 55, 0, 43, 48, 54, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Amman": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 182, 163, 214, 208, 6, 114, 121, 224, 7, 12, 171, 80, 8, 36, 55, 96, 8, 237, 222, 208, 10, 5, 106, 224, 10, 207, 18, 80, 11, 231, 239, 224, 12, 218, 117, 208, 13, 201, 35, 96, 14, 146, 202, 208, 15, 169, 5, 96, 16, 114, 172, 208, 28, 173, 213, 96, 29, 159, 9, 208, 30, 146, 253, 96, 31, 130, 224, 80, 32, 114, 223, 96, 33, 98, 194, 80, 34, 82, 193, 96, 35, 75, 222, 208, 36, 100, 188, 96, 37, 43, 192, 208, 38, 55, 111, 96, 39, 11, 162, 208, 40, 11, 115, 224, 40, 226, 74, 80, 41, 228, 190, 96, 42, 203, 102, 208, 43, 187, 101, 224, 44, 171, 72, 208, 45, 155, 71, 224, 46, 120, 181, 208, 47, 132, 100, 96, 48, 88, 165, 224, 49, 100, 70, 96, 50, 65, 194, 96, 51, 68, 40, 96, 52, 33, 164, 96, 53, 36, 10, 96, 54, 1, 134, 96, 55, 122, 147, 96, 55, 234, 162, 224, 56, 226, 124, 224, 57, 211, 191, 96, 58, 194, 94, 224, 59, 179, 161, 96, 60, 163, 146, 96, 61, 147, 131, 96, 62, 131, 116, 96, 63, 152, 79, 96, 64, 99, 86, 96, 65, 110, 246, 224, 66, 76, 114, 224, 67, 60, 99, 224, 68, 44, 84, 224, 69, 65, 47, 224, 70, 12, 54, 224, 71, 33, 17, 224, 71, 236, 24, 224, 73, 10, 46, 96, 73, 203, 250, 224, 74, 234, 16, 96, 75, 171, 220, 224, 76, 201, 242, 96, 77, 148, 249, 96, 78, 169, 212, 96, 79, 116, 219, 96, 82, 179, 94, 80, 83, 52, 159, 96, 84, 82, 180, 224, 85, 20, 129, 96, 86, 50, 150, 224, 86, 253, 157, 224, 88, 18, 120, 224, 88, 221, 127, 224, 89, 242, 90, 224, 90, 189, 97, 224, 91, 210, 60, 224, 92, 157, 67, 224, 93, 178, 30, 224, 94, 125, 37, 224, 95, 155, 59, 96, 96, 93, 7, 224, 97, 123, 29, 96, 98, 70, 36, 96, 99, 90, 255, 96, 100, 38, 6, 96, 101, 58, 225, 96, 102, 5, 232, 96, 103, 26, 195, 96, 103, 229, 202, 96, 105, 3, 223, 224, 105, 197, 172, 96, 106, 227, 193, 224, 107, 165, 142, 96, 108, 195, 163, 224, 109, 142, 170, 224, 110, 163, 133, 224, 111, 110, 140, 224, 112, 131, 103, 224, 113, 78, 110, 224, 114, 99, 73, 224, 115, 46, 80, 224, 116, 76, 102, 96, 117, 14, 50, 224, 118, 44, 72, 96, 118, 247, 79, 96, 120, 12, 42, 96, 120, 215, 49, 96, 121, 236, 12, 96, 122, 183, 19, 96, 123, 203, 238, 96, 124, 150, 245, 96, 125, 181, 10, 224, 126, 118, 215, 96, 127, 148, 236, 224, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 4, 3, 4, 3, 4, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 0, 0, 33, 176, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 4, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 52, 47, 50, 52, 44, 77, 49, 48, 46, 53, 46, 53, 47, 49, 10},
+
+ "zoneinfo/Asia/Anadyr": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 10, 0, 0, 0, 20, 128, 0, 0, 0, 170, 25, 29, 156, 181, 163, 140, 192, 21, 39, 27, 48, 22, 24, 79, 160, 23, 8, 78, 176, 23, 249, 145, 48, 24, 233, 144, 64, 25, 218, 196, 176, 26, 204, 21, 64, 27, 188, 34, 96, 28, 172, 19, 96, 29, 156, 4, 96, 30, 139, 245, 96, 31, 123, 230, 96, 32, 107, 215, 96, 33, 91, 200, 96, 34, 75, 185, 96, 35, 59, 170, 96, 36, 43, 155, 96, 37, 27, 140, 96, 38, 11, 125, 96, 39, 4, 168, 224, 39, 244, 153, 224, 40, 228, 152, 240, 41, 120, 64, 240, 41, 212, 123, 224, 42, 196, 108, 224, 43, 180, 93, 224, 44, 164, 78, 224, 45, 148, 63, 224, 46, 132, 48, 224, 47, 116, 33, 224, 48, 100, 18, 224, 49, 93, 62, 96, 50, 114, 25, 96, 51, 61, 32, 96, 52, 81, 251, 96, 53, 29, 2, 96, 54, 49, 221, 96, 54, 252, 228, 96, 56, 26, 249, 224, 56, 220, 198, 96, 57, 250, 219, 224, 58, 188, 168, 96, 59, 218, 189, 224, 60, 165, 196, 224, 61, 186, 159, 224, 62, 133, 166, 224, 63, 154, 129, 224, 64, 101, 136, 224, 65, 131, 158, 96, 66, 69, 106, 224, 67, 99, 128, 96, 68, 37, 76, 224, 69, 67, 98, 96, 70, 5, 46, 224, 71, 35, 68, 96, 71, 238, 75, 96, 73, 3, 38, 96, 73, 206, 45, 96, 74, 227, 8, 96, 75, 174, 15, 96, 76, 204, 50, 240, 77, 141, 255, 112, 127, 255, 255, 255, 0, 1, 3, 2, 3, 4, 1, 4, 1, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 5, 0, 0, 166, 100, 0, 0, 0, 0, 168, 192, 0, 4, 0, 0, 196, 224, 1, 8, 0, 0, 182, 208, 0, 12, 0, 0, 182, 208, 1, 12, 0, 0, 168, 192, 0, 4, 0, 0, 182, 208, 1, 12, 0, 0, 168, 192, 1, 4, 0, 0, 154, 176, 0, 16, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 43, 49, 50, 0, 43, 49, 52, 0, 43, 49, 51, 0, 43, 49, 49, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Asia/Aqtau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 148, 224, 181, 163, 253, 64, 22, 24, 206, 48, 23, 8, 177, 32, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 251, 96, 41, 120, 163, 96, 41, 212, 222, 80, 42, 196, 207, 80, 43, 180, 192, 80, 44, 164, 177, 80, 45, 148, 162, 80, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 131, 96, 49, 93, 174, 224, 50, 114, 137, 224, 51, 61, 144, 224, 52, 82, 107, 224, 53, 29, 114, 224, 54, 50, 77, 224, 54, 253, 84, 224, 56, 27, 106, 96, 56, 221, 54, 224, 57, 251, 76, 96, 58, 189, 24, 224, 59, 219, 46, 96, 60, 166, 53, 96, 61, 187, 16, 96, 62, 134, 23, 96, 63, 154, 242, 96, 64, 101, 249, 96, 65, 132, 14, 224, 127, 255, 255, 255, 0, 1, 2, 3, 4, 2, 4, 2, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 6, 5, 6, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 5, 5, 0, 0, 47, 32, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 4, 0, 0, 70, 80, 0, 8, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 53, 0, 43, 48, 54, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Aqtobe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 142, 104, 181, 163, 253, 64, 21, 39, 139, 176, 22, 24, 192, 32, 23, 8, 177, 32, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 251, 96, 41, 120, 163, 96, 41, 212, 222, 80, 42, 196, 207, 80, 43, 180, 192, 80, 44, 164, 177, 80, 45, 148, 162, 80, 46, 132, 147, 80, 47, 116, 132, 80, 48, 100, 117, 80, 49, 93, 160, 208, 50, 114, 123, 208, 51, 61, 130, 208, 52, 82, 93, 208, 53, 29, 100, 208, 54, 50, 63, 208, 54, 253, 70, 208, 56, 27, 92, 80, 56, 221, 40, 208, 57, 251, 62, 80, 58, 189, 10, 208, 59, 219, 32, 80, 60, 166, 39, 80, 61, 187, 2, 80, 62, 134, 9, 80, 63, 154, 228, 80, 64, 101, 235, 80, 65, 132, 0, 208, 127, 255, 255, 255, 0, 1, 2, 3, 4, 3, 2, 3, 2, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 0, 0, 53, 152, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 84, 96, 0, 12, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 4, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 8, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 53, 0, 43, 48, 54, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Ashgabat": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 141, 68, 181, 163, 253, 64, 21, 39, 139, 176, 22, 24, 192, 32, 23, 8, 191, 48, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 251, 96, 41, 120, 163, 96, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 3, 3, 0, 0, 54, 188, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 84, 96, 1, 8, 0, 0, 70, 80, 0, 12, 0, 0, 70, 80, 0, 12, 0, 0, 84, 96, 1, 8, 0, 0, 70, 80, 1, 12, 0, 0, 56, 64, 0, 4, 0, 0, 70, 80, 0, 12, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 54, 0, 43, 48, 53, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Ashkhabad": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 141, 68, 181, 163, 253, 64, 21, 39, 139, 176, 22, 24, 192, 32, 23, 8, 191, 48, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 251, 96, 41, 120, 163, 96, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 3, 3, 0, 0, 54, 188, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 84, 96, 1, 8, 0, 0, 70, 80, 0, 12, 0, 0, 70, 80, 0, 12, 0, 0, 84, 96, 1, 8, 0, 0, 70, 80, 1, 12, 0, 0, 56, 64, 0, 4, 0, 0, 70, 80, 0, 12, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 54, 0, 43, 48, 53, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Atyrau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 10, 0, 0, 0, 20, 128, 0, 0, 0, 170, 25, 147, 80, 181, 164, 11, 80, 22, 24, 206, 48, 23, 8, 177, 32, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 251, 96, 41, 120, 163, 96, 41, 212, 222, 80, 42, 196, 207, 80, 43, 180, 192, 80, 44, 164, 177, 80, 45, 148, 162, 80, 46, 132, 147, 80, 47, 116, 132, 80, 48, 100, 117, 80, 49, 93, 160, 208, 50, 114, 123, 208, 51, 61, 130, 208, 52, 82, 93, 208, 53, 29, 100, 208, 54, 50, 63, 208, 54, 253, 70, 208, 56, 27, 106, 96, 56, 221, 54, 224, 57, 251, 76, 96, 58, 189, 24, 224, 59, 219, 46, 96, 60, 166, 53, 96, 61, 187, 16, 96, 62, 134, 23, 96, 63, 154, 242, 96, 64, 101, 249, 96, 65, 132, 14, 224, 127, 255, 255, 255, 0, 1, 2, 3, 4, 2, 4, 2, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 5, 5, 0, 0, 48, 176, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 16, 0, 0, 70, 80, 0, 8, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 54, 0, 43, 48, 52, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Baghdad": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 158, 48, 60, 224, 23, 48, 104, 80, 23, 250, 15, 192, 24, 232, 189, 80, 25, 219, 67, 64, 26, 204, 147, 208, 27, 189, 200, 64, 28, 173, 199, 80, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 27, 252, 224, 38, 11, 237, 224, 39, 5, 25, 96, 39, 246, 120, 0, 40, 231, 186, 128, 41, 216, 253, 0, 42, 202, 63, 128, 43, 186, 48, 128, 44, 171, 115, 0, 45, 155, 100, 0, 46, 140, 166, 128, 47, 124, 151, 128, 48, 109, 218, 0, 49, 95, 28, 128, 50, 80, 95, 0, 51, 64, 80, 0, 52, 49, 146, 128, 53, 33, 131, 128, 54, 18, 198, 0, 55, 2, 183, 0, 55, 243, 249, 128, 56, 229, 60, 0, 57, 214, 126, 128, 58, 198, 111, 128, 59, 183, 178, 0, 60, 167, 163, 0, 61, 152, 229, 128, 62, 136, 214, 128, 63, 122, 25, 0, 64, 107, 91, 128, 65, 92, 158, 0, 66, 76, 143, 0, 67, 61, 209, 128, 68, 45, 194, 128, 69, 31, 5, 0, 70, 14, 246, 0, 71, 0, 56, 128, 127, 255, 255, 255, 1, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 0, 0, 41, 164, 0, 0, 0, 0, 41, 160, 0, 4, 0, 0, 42, 48, 0, 8, 0, 0, 56, 64, 1, 12, 0, 0, 42, 48, 0, 8, 0, 0, 56, 64, 1, 12, 76, 77, 84, 0, 66, 77, 84, 0, 43, 48, 51, 0, 43, 48, 52, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Asia/Bahrain": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 161, 242, 157, 48, 4, 138, 146, 192, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 48, 80, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 42, 48, 0, 8, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Asia/Baku": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 149, 68, 231, 218, 12, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 27, 252, 224, 38, 11, 237, 224, 39, 5, 25, 96, 39, 245, 10, 96, 40, 229, 9, 112, 41, 212, 250, 112, 42, 196, 235, 112, 48, 230, 235, 192, 49, 93, 217, 16, 50, 114, 180, 16, 50, 201, 112, 192, 51, 61, 173, 0, 52, 82, 136, 0, 53, 29, 143, 0, 54, 50, 106, 0, 54, 253, 113, 0, 56, 27, 134, 128, 56, 221, 83, 0, 57, 251, 104, 128, 58, 189, 53, 0, 59, 219, 74, 128, 60, 166, 81, 128, 61, 187, 44, 128, 62, 134, 51, 128, 63, 155, 14, 128, 64, 102, 21, 128, 65, 132, 43, 0, 66, 69, 247, 128, 67, 100, 13, 0, 68, 37, 217, 128, 69, 67, 239, 0, 70, 5, 187, 128, 71, 35, 209, 0, 71, 238, 216, 0, 73, 3, 179, 0, 73, 206, 186, 0, 74, 227, 149, 0, 75, 174, 156, 0, 76, 204, 177, 128, 77, 142, 126, 0, 78, 172, 147, 128, 79, 110, 96, 0, 80, 140, 117, 128, 81, 87, 124, 128, 82, 108, 87, 128, 83, 55, 94, 128, 84, 76, 57, 128, 85, 23, 64, 128, 86, 44, 27, 128, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 4, 3, 8, 9, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 0, 0, 46, 188, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 0, 0, 56, 64, 0, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 1, 12, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 52, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Asia/Bangkok": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 162, 106, 103, 196, 127, 255, 255, 255, 1, 2, 2, 0, 0, 94, 60, 0, 0, 0, 0, 94, 60, 0, 4, 0, 0, 98, 112, 0, 8, 76, 77, 84, 0, 66, 77, 84, 0, 43, 48, 55, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Barnaul": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 161, 213, 125, 252, 181, 163, 225, 32, 21, 39, 111, 144, 22, 24, 164, 0, 23, 8, 163, 16, 23, 249, 215, 128, 24, 233, 214, 144, 25, 219, 11, 0, 26, 204, 91, 144, 27, 188, 104, 176, 28, 172, 89, 176, 29, 156, 74, 176, 30, 140, 59, 176, 31, 124, 44, 176, 32, 108, 29, 176, 33, 92, 14, 176, 34, 75, 255, 176, 35, 59, 240, 176, 36, 43, 225, 176, 37, 27, 210, 176, 38, 11, 195, 176, 39, 4, 239, 48, 39, 244, 224, 48, 40, 228, 223, 64, 41, 120, 135, 64, 41, 212, 194, 48, 42, 196, 179, 48, 43, 180, 164, 48, 44, 164, 149, 48, 45, 148, 134, 48, 46, 132, 119, 48, 47, 116, 104, 48, 47, 199, 76, 128, 48, 100, 103, 64, 49, 93, 146, 192, 50, 114, 109, 192, 51, 61, 116, 192, 52, 82, 79, 192, 53, 29, 86, 192, 54, 50, 49, 192, 54, 253, 56, 192, 56, 27, 78, 64, 56, 221, 26, 192, 57, 251, 48, 64, 58, 188, 252, 192, 59, 219, 18, 64, 60, 166, 25, 64, 61, 186, 244, 64, 62, 133, 251, 64, 63, 154, 214, 64, 64, 101, 221, 64, 65, 131, 242, 192, 66, 69, 191, 64, 67, 99, 212, 192, 68, 37, 161, 64, 69, 67, 182, 192, 70, 5, 131, 64, 71, 35, 152, 192, 71, 238, 159, 192, 73, 3, 122, 192, 73, 206, 129, 192, 74, 227, 92, 192, 75, 174, 99, 192, 76, 204, 121, 64, 77, 142, 69, 192, 84, 75, 243, 48, 86, 246, 234, 64, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 8, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 4, 0, 0, 78, 132, 0, 0, 0, 0, 84, 96, 0, 4, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 0, 12, 0, 0, 98, 112, 0, 12, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 1, 12, 0, 0, 84, 96, 0, 4, 0, 0, 98, 112, 1, 12, 0, 0, 98, 112, 0, 12, 76, 77, 84, 0, 43, 48, 54, 0, 43, 48, 56, 0, 43, 48, 55, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Beirut": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 3, 0, 0, 0, 13, 128, 0, 0, 0, 162, 101, 99, 224, 163, 123, 130, 80, 164, 78, 128, 96, 165, 63, 180, 208, 166, 37, 39, 224, 167, 39, 127, 208, 168, 41, 243, 224, 168, 235, 178, 80, 232, 42, 133, 224, 232, 244, 45, 80, 234, 11, 185, 96, 234, 213, 96, 208, 235, 236, 236, 224, 236, 182, 148, 80, 237, 207, 113, 224, 238, 153, 25, 80, 239, 176, 165, 96, 240, 122, 76, 208, 4, 166, 94, 96, 5, 43, 119, 208, 6, 67, 3, 224, 7, 12, 171, 80, 8, 36, 55, 96, 8, 237, 222, 208, 10, 5, 106, 224, 10, 207, 18, 80, 11, 231, 239, 224, 12, 177, 151, 80, 13, 201, 35, 96, 14, 146, 202, 208, 15, 169, 5, 96, 16, 114, 172, 208, 26, 244, 46, 224, 27, 209, 156, 208, 28, 213, 98, 96, 29, 178, 208, 80, 30, 182, 149, 224, 31, 148, 3, 208, 32, 151, 201, 96, 33, 117, 55, 80, 34, 163, 44, 224, 35, 87, 188, 80, 36, 103, 95, 96, 37, 56, 239, 208, 38, 60, 181, 96, 39, 26, 35, 80, 40, 29, 232, 224, 40, 251, 86, 208, 42, 0, 109, 224, 42, 206, 9, 208, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 77, 145, 208, 51, 61, 144, 224, 52, 45, 115, 208, 53, 29, 114, 224, 54, 13, 85, 208, 54, 253, 84, 224, 56, 27, 92, 80, 56, 221, 54, 224, 57, 251, 62, 80, 58, 189, 24, 224, 59, 219, 32, 80, 60, 166, 53, 96, 61, 187, 2, 80, 62, 134, 23, 96, 63, 154, 228, 80, 64, 101, 249, 96, 65, 132, 0, 208, 66, 69, 219, 96, 67, 99, 226, 208, 68, 37, 189, 96, 69, 67, 196, 208, 70, 5, 159, 96, 71, 35, 166, 208, 71, 238, 187, 224, 73, 3, 136, 208, 73, 206, 157, 224, 74, 227, 106, 208, 75, 174, 127, 224, 76, 204, 135, 80, 77, 142, 97, 224, 78, 172, 105, 80, 79, 110, 67, 224, 80, 140, 75, 80, 81, 87, 96, 96, 82, 108, 45, 80, 83, 55, 66, 96, 84, 76, 15, 80, 85, 23, 36, 96, 86, 43, 241, 80, 86, 247, 6, 96, 88, 21, 13, 208, 88, 214, 232, 96, 89, 244, 239, 208, 90, 182, 202, 96, 91, 212, 209, 208, 92, 159, 230, 224, 93, 180, 179, 208, 94, 127, 200, 224, 95, 148, 149, 208, 96, 95, 170, 224, 97, 125, 178, 80, 98, 63, 140, 224, 99, 93, 148, 80, 100, 31, 110, 224, 101, 61, 118, 80, 102, 8, 139, 96, 103, 29, 88, 80, 103, 232, 109, 96, 104, 253, 58, 80, 105, 200, 79, 96, 106, 221, 28, 80, 107, 168, 49, 96, 108, 198, 56, 208, 109, 136, 19, 96, 110, 166, 26, 208, 111, 103, 245, 96, 112, 133, 252, 208, 113, 81, 17, 224, 114, 101, 222, 208, 115, 48, 243, 224, 116, 69, 192, 208, 117, 16, 213, 224, 118, 46, 221, 80, 118, 240, 183, 224, 120, 14, 191, 80, 120, 208, 153, 224, 121, 238, 161, 80, 122, 176, 123, 224, 123, 206, 131, 80, 124, 153, 152, 96, 125, 174, 101, 80, 126, 121, 122, 96, 127, 142, 71, 80, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 33, 72, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 48, 10},
+
+ "zoneinfo/Asia/Bishkek": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 126, 16, 181, 163, 239, 48, 21, 39, 125, 160, 22, 24, 178, 16, 23, 8, 177, 32, 23, 249, 229, 144, 24, 233, 228, 160, 25, 219, 25, 16, 26, 204, 105, 160, 27, 188, 118, 192, 28, 172, 103, 192, 29, 156, 88, 192, 30, 140, 73, 192, 31, 124, 58, 192, 32, 108, 43, 192, 33, 92, 28, 192, 34, 76, 13, 192, 35, 59, 254, 192, 36, 43, 239, 192, 37, 27, 224, 192, 38, 11, 209, 192, 39, 4, 253, 64, 39, 244, 238, 64, 40, 190, 163, 192, 41, 231, 55, 48, 42, 196, 165, 32, 43, 199, 25, 48, 44, 164, 135, 32, 45, 166, 251, 48, 46, 132, 105, 32, 47, 134, 221, 48, 48, 100, 75, 32, 49, 102, 191, 48, 50, 77, 103, 160, 51, 61, 137, 216, 52, 82, 86, 200, 53, 29, 107, 216, 54, 50, 56, 200, 54, 253, 77, 216, 56, 27, 85, 72, 56, 221, 47, 216, 57, 251, 55, 72, 58, 189, 17, 216, 59, 219, 25, 72, 60, 166, 46, 88, 61, 186, 251, 72, 62, 134, 16, 88, 63, 154, 221, 72, 64, 101, 242, 88, 65, 131, 249, 200, 66, 69, 212, 88, 66, 251, 146, 32, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 3, 3, 0, 0, 69, 240, 0, 0, 0, 0, 70, 80, 0, 4, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 0, 12, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 4, 0, 0, 84, 96, 1, 12, 0, 0, 84, 96, 0, 12, 76, 77, 84, 0, 43, 48, 53, 0, 43, 48, 55, 0, 43, 48, 54, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Brunei": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 173, 138, 2, 68, 186, 103, 71, 136, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 107, 188, 0, 0, 0, 0, 105, 120, 0, 4, 0, 0, 112, 128, 0, 10, 76, 77, 84, 0, 43, 48, 55, 51, 48, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Calcutta": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 135, 157, 188, 186, 202, 219, 140, 40, 204, 5, 113, 24, 204, 149, 50, 168, 210, 116, 18, 152, 1, 2, 3, 2, 3, 2, 0, 0, 82, 208, 0, 0, 0, 0, 75, 70, 0, 4, 0, 0, 77, 88, 0, 8, 0, 0, 91, 104, 1, 12, 72, 77, 84, 0, 77, 77, 84, 0, 73, 83, 84, 0, 43, 48, 54, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 73, 83, 84, 45, 53, 58, 51, 48, 10},
+
+ "zoneinfo/Asia/Chita": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 161, 219, 249, 160, 181, 163, 197, 0, 21, 39, 83, 112, 22, 24, 135, 224, 23, 8, 134, 240, 23, 249, 187, 96, 24, 233, 186, 112, 25, 218, 238, 224, 26, 204, 63, 112, 27, 188, 76, 144, 28, 172, 61, 144, 29, 156, 46, 144, 30, 140, 31, 144, 31, 124, 16, 144, 32, 108, 1, 144, 33, 91, 242, 144, 34, 75, 227, 144, 35, 59, 212, 144, 36, 43, 197, 144, 37, 27, 182, 144, 38, 11, 167, 144, 39, 4, 211, 16, 39, 244, 196, 16, 40, 228, 195, 32, 41, 120, 107, 32, 41, 212, 166, 16, 42, 196, 151, 16, 43, 180, 136, 16, 44, 164, 121, 16, 45, 148, 106, 16, 46, 132, 91, 16, 47, 116, 76, 16, 48, 100, 61, 16, 49, 93, 104, 144, 50, 114, 67, 144, 51, 61, 74, 144, 52, 82, 37, 144, 53, 29, 44, 144, 54, 50, 7, 144, 54, 253, 14, 144, 56, 27, 36, 16, 56, 220, 240, 144, 57, 251, 6, 16, 58, 188, 210, 144, 59, 218, 232, 16, 60, 165, 239, 16, 61, 186, 202, 16, 62, 133, 209, 16, 63, 154, 172, 16, 64, 101, 179, 16, 65, 131, 200, 144, 66, 69, 149, 16, 67, 99, 170, 144, 68, 37, 119, 16, 69, 67, 140, 144, 70, 5, 89, 16, 71, 35, 110, 144, 71, 238, 117, 144, 73, 3, 80, 144, 73, 206, 87, 144, 74, 227, 50, 144, 75, 174, 57, 144, 76, 204, 79, 16, 77, 142, 27, 144, 84, 75, 201, 0, 86, 246, 206, 32, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 7, 3, 3, 0, 0, 106, 96, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 0, 12, 0, 0, 126, 144, 0, 12, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 4, 0, 0, 140, 160, 0, 8, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 0, 12, 76, 77, 84, 0, 43, 48, 56, 0, 43, 49, 48, 0, 43, 48, 57, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 57, 62, 45, 57, 10},
+
+ "zoneinfo/Asia/Choibalsan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 7, 0, 0, 0, 20, 128, 0, 0, 0, 134, 211, 231, 40, 15, 11, 220, 144, 24, 233, 200, 128, 25, 218, 238, 224, 26, 204, 63, 112, 27, 188, 34, 96, 28, 172, 33, 112, 29, 156, 4, 96, 30, 140, 3, 112, 31, 123, 230, 96, 32, 107, 229, 112, 33, 91, 200, 96, 34, 75, 199, 112, 35, 59, 170, 96, 36, 43, 169, 112, 37, 27, 140, 96, 38, 11, 139, 112, 39, 4, 168, 224, 39, 244, 167, 240, 40, 228, 138, 224, 41, 212, 137, 240, 42, 196, 108, 224, 43, 180, 107, 240, 44, 164, 78, 224, 45, 148, 77, 240, 46, 132, 48, 224, 47, 116, 47, 240, 48, 100, 18, 224, 49, 93, 76, 112, 50, 77, 47, 96, 51, 61, 46, 112, 52, 45, 17, 96, 53, 29, 16, 112, 54, 12, 243, 96, 58, 233, 165, 144, 59, 180, 158, 128, 60, 164, 157, 144, 61, 148, 128, 128, 62, 132, 127, 144, 63, 116, 98, 128, 64, 100, 97, 144, 65, 84, 68, 128, 66, 68, 67, 144, 67, 52, 38, 128, 68, 36, 37, 144, 69, 29, 67, 0, 71, 239, 170, 240, 85, 21, 154, 160, 86, 5, 97, 112, 86, 245, 124, 160, 87, 229, 67, 112, 127, 255, 255, 255, 0, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 2, 5, 2, 2, 0, 0, 107, 88, 0, 0, 0, 0, 98, 112, 0, 4, 0, 0, 112, 128, 0, 8, 0, 0, 126, 144, 0, 12, 0, 0, 140, 160, 1, 16, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 43, 48, 55, 0, 43, 48, 56, 0, 43, 48, 57, 0, 43, 49, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Chongqing": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 200, 92, 1, 128, 200, 250, 39, 112, 201, 213, 14, 128, 202, 219, 90, 240, 30, 186, 54, 0, 31, 105, 127, 112, 32, 126, 104, 128, 33, 73, 97, 112, 34, 94, 74, 128, 35, 41, 67, 112, 36, 71, 103, 0, 37, 18, 95, 240, 38, 39, 73, 0, 38, 242, 65, 240, 40, 7, 43, 0, 40, 210, 35, 240, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 113, 215, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Chungking": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 200, 92, 1, 128, 200, 250, 39, 112, 201, 213, 14, 128, 202, 219, 90, 240, 30, 186, 54, 0, 31, 105, 127, 112, 32, 126, 104, 128, 33, 73, 97, 112, 34, 94, 74, 128, 35, 41, 67, 112, 36, 71, 103, 0, 37, 18, 95, 240, 38, 39, 73, 0, 38, 242, 65, 240, 40, 7, 43, 0, 40, 210, 35, 240, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 113, 215, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Colombo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 24, 128, 0, 0, 0, 135, 157, 189, 28, 203, 90, 28, 40, 204, 149, 43, 160, 210, 117, 128, 56, 49, 166, 0, 40, 50, 113, 0, 32, 68, 63, 234, 40, 127, 255, 255, 255, 1, 2, 3, 4, 2, 5, 6, 2, 2, 0, 0, 74, 220, 0, 0, 0, 0, 74, 228, 0, 4, 0, 0, 77, 88, 0, 8, 0, 0, 84, 96, 1, 14, 0, 0, 91, 104, 1, 18, 0, 0, 91, 104, 0, 18, 0, 0, 84, 96, 0, 14, 0, 0, 77, 88, 0, 8, 76, 77, 84, 0, 77, 77, 84, 0, 43, 48, 53, 51, 48, 0, 43, 48, 54, 0, 43, 48, 54, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 51, 48, 62, 45, 53, 58, 51, 48, 10},
+
+ "zoneinfo/Asia/Dacca": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 28, 128, 0, 0, 0, 202, 219, 134, 176, 204, 5, 113, 24, 204, 149, 50, 168, 221, 168, 210, 152, 74, 59, 196, 16, 75, 60, 216, 144, 127, 255, 255, 255, 1, 2, 3, 2, 4, 5, 4, 4, 0, 0, 84, 196, 0, 0, 0, 0, 82, 208, 0, 4, 0, 0, 91, 104, 0, 8, 0, 0, 77, 88, 0, 14, 0, 0, 84, 96, 0, 20, 0, 0, 98, 112, 1, 24, 76, 77, 84, 0, 72, 77, 84, 0, 43, 48, 54, 51, 48, 0, 43, 48, 53, 51, 48, 0, 43, 48, 54, 0, 43, 48, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Damascus": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 3, 0, 0, 0, 13, 128, 0, 0, 0, 161, 242, 171, 120, 162, 129, 47, 128, 163, 94, 157, 112, 164, 97, 17, 128, 165, 62, 127, 112, 166, 64, 243, 128, 167, 30, 97, 112, 168, 32, 213, 128, 169, 7, 125, 240, 241, 143, 82, 0, 242, 91, 156, 112, 243, 115, 40, 128, 244, 59, 126, 112, 245, 85, 173, 128, 246, 31, 84, 240, 247, 54, 225, 0, 247, 255, 54, 240, 249, 14, 218, 0, 249, 225, 187, 240, 250, 249, 72, 0, 251, 194, 239, 112, 252, 219, 205, 0, 253, 165, 116, 112, 254, 189, 0, 128, 255, 134, 167, 240, 0, 158, 52, 0, 1, 103, 219, 112, 2, 127, 103, 128, 3, 73, 14, 240, 4, 97, 236, 128, 5, 43, 147, 240, 6, 67, 32, 0, 7, 12, 199, 112, 8, 36, 83, 128, 8, 237, 250, 240, 10, 5, 135, 0, 10, 207, 46, 112, 11, 232, 12, 0, 12, 177, 179, 112, 13, 201, 63, 128, 14, 107, 89, 240, 15, 170, 115, 0, 16, 76, 141, 112, 24, 244, 197, 0, 25, 219, 109, 112, 26, 215, 74, 0, 27, 189, 242, 112, 30, 85, 35, 0, 31, 138, 229, 112, 32, 71, 122, 0, 33, 137, 25, 240, 34, 60, 116, 0, 35, 107, 158, 240, 36, 50, 191, 128, 37, 37, 69, 112, 38, 21, 68, 128, 39, 5, 39, 112, 39, 246, 91, 224, 40, 231, 144, 80, 41, 226, 27, 96, 42, 202, 21, 80, 43, 178, 43, 96, 44, 163, 95, 208, 45, 155, 71, 224, 46, 140, 124, 80, 47, 124, 123, 96, 48, 109, 175, 208, 49, 95, 0, 96, 50, 80, 52, 208, 51, 62, 226, 96, 52, 49, 104, 80, 53, 30, 196, 96, 54, 18, 155, 208, 55, 2, 154, 224, 55, 243, 207, 80, 56, 229, 31, 224, 57, 214, 84, 80, 58, 198, 83, 96, 59, 183, 135, 208, 60, 167, 134, 224, 61, 152, 187, 80, 62, 136, 186, 96, 63, 121, 238, 208, 64, 107, 63, 96, 65, 92, 115, 208, 66, 76, 114, 224, 67, 61, 167, 80, 68, 45, 166, 96, 69, 18, 253, 80, 70, 12, 54, 224, 71, 42, 62, 80, 71, 245, 83, 96, 73, 11, 113, 208, 73, 203, 250, 224, 74, 234, 2, 80, 75, 181, 23, 96, 76, 201, 228, 80, 77, 148, 249, 96, 78, 169, 198, 80, 79, 116, 219, 96, 80, 137, 168, 80, 81, 84, 189, 96, 82, 105, 138, 80, 83, 52, 159, 96, 84, 82, 166, 208, 85, 20, 129, 96, 86, 50, 136, 208, 86, 244, 99, 96, 88, 18, 106, 208, 88, 221, 127, 224, 89, 242, 76, 208, 90, 189, 97, 224, 91, 210, 46, 208, 92, 157, 67, 224, 93, 178, 16, 208, 94, 125, 37, 224, 95, 155, 45, 80, 96, 93, 7, 224, 97, 123, 15, 80, 98, 60, 233, 224, 99, 90, 241, 80, 100, 38, 6, 96, 101, 58, 211, 80, 102, 5, 232, 96, 103, 26, 181, 80, 103, 229, 202, 96, 105, 3, 209, 208, 105, 197, 172, 96, 106, 227, 179, 208, 107, 165, 142, 96, 108, 195, 149, 208, 109, 142, 170, 224, 110, 163, 119, 208, 111, 110, 140, 224, 112, 131, 89, 208, 113, 78, 110, 224, 114, 99, 59, 208, 115, 46, 80, 224, 116, 76, 88, 80, 117, 14, 50, 224, 118, 44, 58, 80, 118, 238, 20, 224, 120, 12, 28, 80, 120, 215, 49, 96, 121, 235, 254, 80, 122, 183, 19, 96, 123, 203, 224, 80, 124, 150, 245, 96, 125, 180, 252, 208, 126, 118, 215, 96, 127, 148, 222, 208, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 34, 8, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 53, 47, 48, 44, 77, 49, 48, 46, 53, 46, 53, 47, 48, 10},
+
+ "zoneinfo/Asia/Dhaka": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 28, 128, 0, 0, 0, 202, 219, 134, 176, 204, 5, 113, 24, 204, 149, 50, 168, 221, 168, 210, 152, 74, 59, 196, 16, 75, 60, 216, 144, 127, 255, 255, 255, 1, 2, 3, 2, 4, 5, 4, 4, 0, 0, 84, 196, 0, 0, 0, 0, 82, 208, 0, 4, 0, 0, 91, 104, 0, 8, 0, 0, 77, 88, 0, 14, 0, 0, 84, 96, 0, 20, 0, 0, 98, 112, 1, 24, 76, 77, 84, 0, 72, 77, 84, 0, 43, 48, 54, 51, 48, 0, 43, 48, 53, 51, 48, 0, 43, 48, 54, 0, 43, 48, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Dili": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 146, 230, 24, 196, 203, 153, 50, 240, 11, 234, 48, 112, 57, 195, 153, 0, 127, 255, 255, 255, 0, 1, 2, 1, 2, 2, 0, 0, 117, 188, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 126, 144, 0, 8, 76, 77, 84, 0, 43, 48, 56, 0, 43, 48, 57, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 57, 62, 45, 57, 10},
+
+ "zoneinfo/Asia/Dubai": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 242, 153, 168, 127, 255, 255, 255, 0, 1, 1, 0, 0, 51, 216, 0, 0, 0, 0, 56, 64, 0, 4, 76, 77, 84, 0, 43, 48, 52, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Asia/Dushanbe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 8, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 131, 128, 181, 163, 239, 48, 21, 39, 125, 160, 22, 24, 178, 16, 23, 8, 177, 32, 23, 249, 229, 144, 24, 233, 228, 160, 25, 219, 25, 16, 26, 204, 105, 160, 27, 188, 118, 192, 28, 172, 103, 192, 29, 156, 88, 192, 30, 140, 73, 192, 31, 124, 58, 192, 32, 108, 43, 192, 33, 92, 28, 192, 34, 76, 13, 192, 35, 59, 254, 192, 36, 43, 239, 192, 37, 27, 224, 192, 38, 11, 209, 192, 39, 4, 253, 64, 39, 244, 238, 64, 40, 202, 143, 80, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 7, 0, 0, 64, 128, 0, 0, 0, 0, 70, 80, 0, 4, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 0, 12, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 4, 76, 77, 84, 0, 43, 48, 53, 0, 43, 48, 55, 0, 43, 48, 54, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Famagusta": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 7, 0, 0, 0, 17, 128, 0, 0, 0, 165, 119, 30, 44, 9, 237, 175, 224, 10, 221, 146, 208, 11, 250, 100, 224, 12, 190, 198, 80, 13, 164, 57, 96, 14, 138, 225, 208, 15, 132, 27, 96, 16, 117, 79, 208, 17, 99, 253, 96, 18, 83, 224, 80, 19, 77, 25, 224, 20, 51, 194, 80, 21, 35, 193, 96, 22, 19, 164, 80, 23, 3, 163, 96, 23, 243, 134, 80, 24, 227, 133, 96, 25, 211, 104, 80, 26, 195, 103, 96, 27, 188, 132, 208, 28, 172, 131, 224, 29, 156, 102, 208, 30, 140, 101, 224, 31, 124, 72, 208, 32, 108, 71, 224, 33, 92, 42, 208, 34, 76, 41, 224, 35, 60, 12, 208, 36, 44, 11, 224, 37, 27, 238, 208, 38, 11, 237, 224, 39, 5, 11, 80, 39, 245, 10, 96, 40, 228, 237, 80, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 77, 145, 208, 51, 61, 144, 224, 52, 45, 115, 208, 53, 29, 114, 224, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 87, 208, 127, 208, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 31, 212, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 4, 0, 0, 42, 48, 0, 13, 0, 0, 28, 32, 0, 9, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 43, 48, 51, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Asia/Gaza": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 200, 89, 178, 224, 204, 229, 193, 80, 205, 172, 254, 0, 206, 198, 244, 208, 207, 143, 102, 224, 208, 169, 121, 208, 209, 132, 96, 224, 210, 138, 201, 112, 211, 101, 176, 128, 212, 107, 224, 208, 232, 54, 99, 96, 232, 244, 45, 80, 234, 11, 185, 96, 234, 213, 96, 208, 235, 236, 250, 240, 236, 181, 109, 0, 237, 207, 127, 240, 238, 151, 242, 0, 239, 176, 179, 112, 240, 121, 37, 128, 241, 145, 230, 240, 242, 90, 89, 0, 243, 115, 26, 112, 244, 59, 140, 128, 245, 85, 159, 112, 246, 30, 17, 128, 247, 54, 210, 240, 247, 255, 69, 0, 249, 24, 6, 112, 249, 225, 202, 0, 250, 249, 57, 240, 251, 39, 66, 80, 8, 124, 139, 224, 8, 253, 176, 208, 9, 246, 234, 96, 10, 166, 51, 208, 28, 190, 248, 224, 29, 137, 241, 208, 30, 204, 255, 96, 31, 96, 153, 80, 32, 130, 177, 96, 33, 73, 181, 208, 34, 94, 158, 224, 35, 32, 93, 80, 36, 90, 48, 96, 37, 0, 63, 80, 38, 11, 237, 224, 38, 214, 230, 208, 39, 235, 207, 224, 40, 192, 3, 80, 41, 212, 236, 96, 42, 169, 31, 208, 43, 187, 101, 224, 44, 137, 1, 208, 45, 155, 71, 224, 46, 95, 169, 80, 47, 123, 41, 224, 48, 72, 197, 208, 48, 231, 7, 224, 49, 100, 70, 96, 50, 65, 194, 96, 51, 68, 40, 96, 52, 33, 164, 96, 53, 36, 10, 96, 54, 1, 134, 96, 54, 139, 243, 224, 55, 22, 97, 96, 56, 6, 68, 80, 56, 255, 125, 224, 57, 239, 96, 208, 58, 223, 95, 224, 59, 207, 66, 208, 60, 191, 65, 224, 61, 175, 36, 208, 62, 159, 35, 224, 63, 143, 6, 208, 64, 127, 5, 224, 65, 92, 129, 224, 66, 94, 231, 224, 67, 65, 183, 240, 68, 45, 166, 96, 69, 18, 253, 80, 70, 14, 217, 224, 70, 232, 111, 112, 71, 236, 24, 224, 72, 183, 17, 208, 73, 203, 250, 224, 74, 160, 60, 96, 75, 173, 46, 156, 76, 97, 189, 208, 77, 148, 249, 156, 78, 53, 194, 80, 79, 116, 219, 96, 80, 91, 145, 224, 81, 84, 189, 96, 82, 68, 160, 80, 83, 52, 159, 96, 84, 73, 108, 80, 85, 21, 210, 224, 86, 41, 78, 80, 86, 245, 194, 240, 88, 19, 202, 96, 88, 213, 164, 240, 89, 243, 172, 96, 90, 190, 193, 112, 91, 211, 142, 96, 92, 158, 163, 112, 93, 179, 112, 96, 94, 126, 133, 112, 95, 156, 140, 224, 96, 94, 103, 112, 97, 124, 110, 224, 98, 62, 73, 112, 99, 92, 80, 224, 100, 30, 43, 112, 101, 60, 50, 224, 102, 7, 71, 240, 103, 28, 20, 224, 103, 231, 41, 240, 104, 251, 246, 224, 105, 199, 11, 240, 106, 229, 19, 96, 107, 166, 237, 240, 108, 196, 245, 96, 109, 134, 207, 240, 110, 164, 215, 96, 111, 111, 236, 112, 112, 132, 185, 96, 113, 79, 206, 112, 114, 100, 155, 96, 115, 47, 176, 112, 116, 68, 125, 96, 117, 15, 146, 112, 118, 45, 153, 224, 118, 239, 116, 112, 120, 13, 123, 224, 120, 207, 86, 112, 121, 237, 93, 224, 122, 184, 114, 240, 123, 205, 63, 224, 124, 152, 84, 240, 125, 173, 33, 224, 126, 120, 54, 240, 127, 150, 62, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 2, 1, 5, 1, 5, 1, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 32, 80, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 13, 0, 0, 28, 32, 0, 17, 0, 0, 28, 32, 0, 9, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 73, 68, 84, 0, 73, 83, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 54, 47, 49, 44, 77, 49, 48, 46, 53, 46, 54, 47, 49, 10},
+
+ "zoneinfo/Asia/Harbin": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 200, 92, 1, 128, 200, 250, 39, 112, 201, 213, 14, 128, 202, 219, 90, 240, 30, 186, 54, 0, 31, 105, 127, 112, 32, 126, 104, 128, 33, 73, 97, 112, 34, 94, 74, 128, 35, 41, 67, 112, 36, 71, 103, 0, 37, 18, 95, 240, 38, 39, 73, 0, 38, 242, 65, 240, 40, 7, 43, 0, 40, 210, 35, 240, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 113, 215, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Hebron": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 200, 89, 178, 224, 204, 229, 193, 80, 205, 172, 254, 0, 206, 198, 244, 208, 207, 143, 102, 224, 208, 169, 121, 208, 209, 132, 96, 224, 210, 138, 201, 112, 211, 101, 176, 128, 212, 107, 224, 208, 232, 54, 99, 96, 232, 244, 45, 80, 234, 11, 185, 96, 234, 213, 96, 208, 235, 236, 250, 240, 236, 181, 109, 0, 237, 207, 127, 240, 238, 151, 242, 0, 239, 176, 179, 112, 240, 121, 37, 128, 241, 145, 230, 240, 242, 90, 89, 0, 243, 115, 26, 112, 244, 59, 140, 128, 245, 85, 159, 112, 246, 30, 17, 128, 247, 54, 210, 240, 247, 255, 69, 0, 249, 24, 6, 112, 249, 225, 202, 0, 250, 249, 57, 240, 251, 39, 66, 80, 8, 124, 139, 224, 8, 253, 176, 208, 9, 246, 234, 96, 10, 166, 51, 208, 28, 190, 248, 224, 29, 137, 241, 208, 30, 204, 255, 96, 31, 96, 153, 80, 32, 130, 177, 96, 33, 73, 181, 208, 34, 94, 158, 224, 35, 32, 93, 80, 36, 90, 48, 96, 37, 0, 63, 80, 38, 11, 237, 224, 38, 214, 230, 208, 39, 235, 207, 224, 40, 192, 3, 80, 41, 212, 236, 96, 42, 169, 31, 208, 43, 187, 101, 224, 44, 137, 1, 208, 45, 155, 71, 224, 46, 95, 169, 80, 47, 123, 41, 224, 48, 72, 197, 208, 48, 231, 7, 224, 49, 100, 70, 96, 50, 65, 194, 96, 51, 68, 40, 96, 52, 33, 164, 96, 53, 36, 10, 96, 54, 1, 134, 96, 54, 139, 243, 224, 55, 22, 97, 96, 56, 6, 68, 80, 56, 255, 125, 224, 57, 239, 96, 208, 58, 223, 95, 224, 59, 207, 66, 208, 60, 191, 65, 224, 61, 175, 36, 208, 62, 159, 35, 224, 63, 143, 6, 208, 64, 127, 5, 224, 65, 92, 129, 224, 66, 94, 231, 224, 67, 65, 183, 240, 68, 45, 166, 96, 69, 18, 253, 80, 70, 14, 217, 224, 70, 232, 111, 112, 71, 236, 24, 224, 72, 187, 6, 80, 73, 203, 250, 224, 74, 160, 60, 96, 75, 171, 220, 224, 76, 97, 189, 208, 77, 148, 249, 156, 78, 53, 194, 80, 78, 92, 11, 224, 78, 132, 220, 80, 79, 116, 219, 96, 80, 91, 145, 224, 81, 84, 189, 96, 82, 68, 160, 80, 83, 52, 159, 96, 84, 73, 108, 80, 85, 21, 210, 224, 86, 41, 78, 80, 86, 245, 194, 240, 88, 19, 202, 96, 88, 213, 164, 240, 89, 243, 172, 96, 90, 190, 193, 112, 91, 211, 142, 96, 92, 158, 163, 112, 93, 179, 112, 96, 94, 126, 133, 112, 95, 156, 140, 224, 96, 94, 103, 112, 97, 124, 110, 224, 98, 62, 73, 112, 99, 92, 80, 224, 100, 30, 43, 112, 101, 60, 50, 224, 102, 7, 71, 240, 103, 28, 20, 224, 103, 231, 41, 240, 104, 251, 246, 224, 105, 199, 11, 240, 106, 229, 19, 96, 107, 166, 237, 240, 108, 196, 245, 96, 109, 134, 207, 240, 110, 164, 215, 96, 111, 111, 236, 112, 112, 132, 185, 96, 113, 79, 206, 112, 114, 100, 155, 96, 115, 47, 176, 112, 116, 68, 125, 96, 117, 15, 146, 112, 118, 45, 153, 224, 118, 239, 116, 112, 120, 13, 123, 224, 120, 207, 86, 112, 121, 237, 93, 224, 122, 184, 114, 240, 123, 205, 63, 224, 124, 152, 84, 240, 125, 173, 33, 224, 126, 120, 54, 240, 127, 150, 62, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 2, 1, 5, 1, 5, 1, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 32, 231, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 13, 0, 0, 28, 32, 0, 17, 0, 0, 28, 32, 0, 9, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 73, 68, 84, 0, 73, 83, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 54, 47, 49, 44, 77, 49, 48, 46, 53, 46, 54, 47, 49, 10},
+
+ "zoneinfo/Asia/Ho_Chi_Minh": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 136, 140, 67, 128, 145, 163, 43, 10, 205, 53, 230, 128, 209, 89, 206, 112, 210, 59, 62, 240, 213, 50, 187, 16, 228, 182, 228, 128, 237, 47, 152, 0, 10, 61, 199, 0, 127, 255, 255, 255, 0, 1, 2, 3, 4, 2, 3, 2, 3, 2, 2, 0, 0, 100, 0, 0, 0, 0, 0, 99, 246, 0, 4, 0, 0, 98, 112, 0, 9, 0, 0, 112, 128, 0, 13, 0, 0, 126, 144, 0, 17, 0, 0, 98, 112, 0, 9, 76, 77, 84, 0, 80, 76, 77, 84, 0, 43, 48, 55, 0, 43, 48, 56, 0, 43, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Hong_Kong": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 5, 0, 0, 0, 17, 128, 0, 0, 0, 133, 105, 90, 246, 201, 234, 87, 184, 202, 218, 58, 168, 203, 75, 120, 128, 210, 76, 98, 112, 211, 106, 183, 56, 212, 147, 74, 168, 213, 66, 176, 56, 214, 154, 185, 168, 215, 62, 65, 184, 216, 46, 36, 168, 216, 249, 57, 184, 218, 14, 6, 168, 218, 217, 27, 184, 219, 237, 232, 168, 220, 184, 253, 184, 221, 205, 202, 168, 222, 162, 26, 56, 223, 172, 91, 40, 224, 129, 252, 56, 225, 150, 201, 40, 226, 79, 105, 56, 227, 118, 171, 40, 228, 47, 75, 56, 229, 95, 199, 168, 230, 15, 45, 56, 231, 63, 169, 168, 231, 248, 73, 184, 233, 31, 139, 168, 233, 216, 43, 184, 234, 255, 109, 168, 235, 184, 13, 184, 236, 223, 79, 168, 237, 151, 239, 184, 238, 200, 108, 40, 239, 119, 209, 184, 240, 168, 78, 40, 241, 87, 179, 184, 242, 136, 48, 40, 243, 64, 208, 56, 244, 104, 18, 40, 245, 32, 178, 56, 246, 71, 244, 40, 247, 37, 126, 56, 248, 21, 97, 40, 249, 5, 96, 56, 249, 245, 67, 40, 250, 229, 66, 56, 251, 222, 95, 168, 252, 206, 94, 184, 253, 190, 65, 168, 254, 174, 64, 184, 255, 158, 35, 168, 0, 142, 34, 184, 1, 126, 5, 168, 2, 110, 4, 184, 3, 93, 231, 168, 4, 77, 230, 184, 5, 71, 4, 40, 6, 55, 3, 56, 7, 38, 230, 40, 7, 131, 61, 56, 9, 6, 200, 40, 9, 246, 199, 56, 10, 230, 170, 40, 11, 214, 169, 56, 12, 198, 140, 40, 17, 155, 57, 56, 18, 111, 108, 168, 0, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 107, 10, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 9, 0, 0, 126, 144, 0, 13, 0, 0, 112, 128, 0, 9, 76, 77, 84, 0, 72, 75, 83, 84, 0, 72, 75, 84, 0, 74, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 72, 75, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Hovd": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 134, 211, 252, 148, 15, 11, 234, 160, 24, 233, 214, 144, 25, 219, 11, 0, 26, 204, 91, 144, 27, 188, 62, 128, 28, 172, 61, 144, 29, 156, 32, 128, 30, 140, 31, 144, 31, 124, 2, 128, 32, 108, 1, 144, 33, 91, 228, 128, 34, 75, 227, 144, 35, 59, 198, 128, 36, 43, 197, 144, 37, 27, 168, 128, 38, 11, 167, 144, 39, 4, 197, 0, 39, 244, 196, 16, 40, 228, 167, 0, 41, 212, 166, 16, 42, 196, 137, 0, 43, 180, 136, 16, 44, 164, 107, 0, 45, 148, 106, 16, 46, 132, 77, 0, 47, 116, 76, 16, 48, 100, 47, 0, 49, 93, 104, 144, 50, 77, 75, 128, 51, 61, 74, 144, 52, 45, 45, 128, 53, 29, 44, 144, 54, 13, 15, 128, 58, 233, 193, 176, 59, 180, 186, 160, 60, 164, 185, 176, 61, 148, 156, 160, 62, 132, 155, 176, 63, 116, 126, 160, 64, 100, 125, 176, 65, 84, 96, 160, 66, 68, 95, 176, 67, 52, 66, 160, 68, 36, 65, 176, 69, 29, 95, 32, 85, 21, 168, 176, 86, 5, 111, 128, 86, 245, 138, 176, 87, 229, 81, 128, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 0, 0, 85, 236, 0, 0, 0, 0, 84, 96, 0, 4, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 0, 12, 76, 77, 84, 0, 43, 48, 54, 0, 43, 48, 56, 0, 43, 48, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Irkutsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 12, 0, 0, 0, 20, 128, 0, 0, 0, 162, 18, 15, 191, 181, 163, 211, 16, 21, 39, 97, 128, 22, 24, 149, 240, 23, 8, 149, 0, 23, 249, 201, 112, 24, 233, 200, 128, 25, 218, 252, 240, 26, 204, 77, 128, 27, 188, 90, 160, 28, 172, 75, 160, 29, 156, 60, 160, 30, 140, 45, 160, 31, 124, 30, 160, 32, 108, 15, 160, 33, 92, 0, 160, 34, 75, 241, 160, 35, 59, 226, 160, 36, 43, 211, 160, 37, 27, 196, 160, 38, 11, 181, 160, 39, 4, 225, 32, 39, 244, 210, 32, 40, 228, 209, 48, 41, 120, 121, 48, 41, 212, 180, 32, 42, 196, 165, 32, 43, 180, 150, 32, 44, 164, 135, 32, 45, 148, 120, 32, 46, 132, 105, 32, 47, 116, 90, 32, 48, 100, 75, 32, 49, 93, 118, 160, 50, 114, 81, 160, 51, 61, 88, 160, 52, 82, 51, 160, 53, 29, 58, 160, 54, 50, 21, 160, 54, 253, 28, 160, 56, 27, 50, 32, 56, 220, 254, 160, 57, 251, 20, 32, 58, 188, 224, 160, 59, 218, 246, 32, 60, 165, 253, 32, 61, 186, 216, 32, 62, 133, 223, 32, 63, 154, 186, 32, 64, 101, 193, 32, 65, 131, 214, 160, 66, 69, 163, 32, 67, 99, 184, 160, 68, 37, 133, 32, 69, 67, 154, 160, 70, 5, 103, 32, 71, 35, 124, 160, 71, 238, 131, 160, 73, 3, 94, 160, 73, 206, 101, 160, 74, 227, 64, 160, 75, 174, 71, 160, 76, 204, 93, 32, 77, 142, 41, 160, 84, 75, 215, 16, 127, 255, 255, 255, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 9, 5, 5, 0, 0, 97, 193, 0, 0, 0, 0, 97, 193, 0, 4, 0, 0, 98, 112, 0, 8, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 16, 0, 0, 112, 128, 0, 16, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 1, 16, 0, 0, 98, 112, 0, 8, 0, 0, 126, 144, 0, 12, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 16, 76, 77, 84, 0, 73, 77, 84, 0, 43, 48, 55, 0, 43, 48, 57, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Istanbul": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 11, 0, 0, 0, 25, 128, 0, 0, 0, 144, 139, 245, 152, 155, 12, 23, 96, 155, 213, 190, 208, 162, 101, 99, 224, 163, 123, 130, 80, 164, 78, 128, 96, 165, 63, 180, 208, 166, 37, 39, 224, 167, 39, 127, 208, 170, 40, 40, 96, 170, 225, 253, 208, 171, 249, 137, 224, 172, 195, 49, 80, 200, 127, 238, 96, 200, 255, 193, 208, 201, 74, 245, 96, 202, 206, 128, 80, 203, 203, 174, 96, 204, 229, 193, 80, 209, 113, 235, 224, 210, 107, 9, 80, 211, 162, 57, 96, 212, 67, 2, 80, 213, 76, 13, 224, 214, 41, 123, 208, 215, 43, 239, 224, 216, 9, 93, 208, 217, 2, 151, 96, 217, 233, 63, 208, 218, 239, 168, 96, 219, 210, 92, 80, 220, 212, 208, 96, 221, 179, 143, 208, 241, 244, 185, 96, 242, 100, 186, 208, 245, 104, 6, 96, 246, 31, 56, 208, 0, 160, 186, 224, 1, 107, 179, 208, 2, 128, 156, 224, 3, 75, 149, 208, 4, 105, 185, 96, 5, 52, 178, 80, 6, 110, 147, 112, 7, 57, 168, 128, 7, 251, 117, 0, 9, 25, 166, 160, 9, 219, 58, 224, 10, 240, 7, 208, 12, 16, 206, 96, 12, 217, 36, 80, 13, 164, 57, 96, 14, 166, 145, 80, 15, 132, 27, 96, 16, 134, 115, 80, 18, 103, 152, 192, 19, 77, 54, 0, 20, 71, 122, 192, 21, 35, 221, 128, 22, 39, 92, 192, 23, 3, 191, 128, 24, 7, 62, 192, 25, 137, 148, 80, 25, 220, 148, 192, 28, 198, 211, 208, 29, 155, 21, 80, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 229, 9, 112, 41, 212, 250, 112, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 139, 131, 240, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 69, 152, 50, 224, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 143, 221, 144, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 56, 190, 16, 84, 76, 71, 144, 85, 23, 78, 144, 86, 62, 158, 144, 86, 247, 48, 144, 87, 207, 46, 80, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 2, 3, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 3, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 5, 5, 0, 0, 27, 40, 0, 0, 0, 0, 27, 104, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 21, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 0, 21, 76, 77, 84, 0, 73, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 43, 48, 52, 0, 43, 48, 51, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Asia/Jakarta": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 32, 128, 0, 0, 0, 169, 120, 133, 224, 186, 22, 222, 96, 203, 191, 131, 136, 210, 86, 238, 112, 215, 60, 198, 8, 218, 255, 38, 0, 244, 181, 190, 136, 1, 2, 3, 4, 3, 5, 3, 6, 0, 0, 100, 32, 0, 0, 0, 0, 100, 32, 0, 4, 0, 0, 103, 32, 0, 8, 0, 0, 105, 120, 0, 14, 0, 0, 126, 144, 0, 20, 0, 0, 112, 128, 0, 24, 0, 0, 98, 112, 0, 28, 76, 77, 84, 0, 66, 77, 84, 0, 43, 48, 55, 50, 48, 0, 43, 48, 55, 51, 48, 0, 43, 48, 57, 0, 43, 48, 56, 0, 87, 73, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87, 73, 66, 45, 55, 10},
+
+ "zoneinfo/Asia/Jayapura": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 186, 22, 193, 152, 208, 88, 185, 240, 244, 181, 162, 104, 0, 1, 2, 3, 0, 0, 131, 232, 0, 0, 0, 0, 126, 144, 0, 4, 0, 0, 133, 152, 0, 8, 0, 0, 126, 144, 0, 14, 76, 77, 84, 0, 43, 48, 57, 0, 43, 48, 57, 51, 48, 0, 87, 73, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87, 73, 84, 45, 57, 10},
+
+ "zoneinfo/Asia/Jerusalem": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 158, 48, 69, 136, 200, 89, 178, 224, 204, 229, 193, 80, 205, 172, 254, 0, 206, 198, 244, 208, 207, 143, 102, 224, 208, 169, 121, 208, 209, 132, 96, 224, 210, 138, 201, 112, 211, 101, 176, 128, 212, 107, 224, 208, 215, 90, 20, 96, 215, 223, 31, 192, 216, 47, 181, 112, 217, 30, 70, 224, 218, 16, 232, 240, 218, 235, 179, 224, 219, 180, 52, 0, 220, 185, 32, 224, 221, 224, 141, 0, 222, 180, 206, 128, 223, 164, 191, 128, 224, 139, 118, 0, 225, 86, 125, 0, 226, 190, 74, 96, 227, 54, 52, 208, 228, 156, 247, 0, 229, 22, 22, 208, 230, 116, 211, 224, 231, 17, 210, 128, 232, 39, 255, 0, 232, 232, 79, 208, 8, 124, 139, 224, 8, 253, 176, 208, 9, 246, 234, 96, 10, 166, 51, 208, 28, 190, 248, 224, 29, 137, 241, 208, 30, 204, 255, 96, 31, 96, 153, 80, 32, 130, 177, 96, 33, 73, 181, 208, 34, 94, 158, 224, 35, 32, 93, 80, 36, 90, 48, 96, 37, 0, 63, 80, 38, 11, 237, 224, 38, 214, 230, 208, 39, 235, 207, 224, 40, 192, 3, 80, 41, 212, 236, 96, 42, 169, 31, 208, 43, 187, 101, 224, 44, 137, 1, 208, 45, 155, 71, 224, 46, 95, 169, 80, 47, 123, 41, 224, 48, 72, 197, 208, 49, 72, 150, 224, 50, 60, 110, 80, 51, 49, 179, 96, 52, 26, 254, 208, 53, 17, 149, 96, 53, 241, 166, 80, 55, 4, 8, 128, 55, 207, 1, 112, 56, 246, 95, 128, 57, 220, 249, 224, 58, 208, 237, 112, 59, 174, 91, 96, 60, 163, 160, 112, 61, 160, 178, 96, 62, 131, 130, 112, 63, 124, 159, 224, 64, 115, 54, 112, 65, 80, 164, 96, 66, 76, 143, 0, 67, 72, 79, 112, 68, 44, 113, 0, 69, 30, 246, 240, 70, 12, 83, 0, 70, 236, 99, 240, 71, 236, 53, 0, 72, 231, 245, 112, 73, 204, 23, 0, 74, 190, 156, 240, 75, 171, 249, 0, 76, 140, 9, 240, 77, 149, 21, 128, 78, 135, 155, 112, 79, 116, 247, 128, 80, 94, 66, 240, 81, 84, 217, 128, 82, 108, 73, 112, 83, 52, 187, 128, 84, 76, 43, 112, 85, 20, 157, 128, 86, 44, 13, 112, 86, 244, 127, 128, 88, 21, 41, 240, 88, 212, 97, 128, 89, 245, 11, 240, 90, 180, 67, 128, 91, 212, 237, 240, 92, 157, 96, 0, 93, 180, 207, 240, 94, 125, 66, 0, 95, 148, 177, 240, 96, 93, 36, 0, 97, 125, 206, 112, 98, 61, 6, 0, 99, 93, 176, 112, 100, 28, 232, 0, 101, 61, 146, 112, 102, 6, 4, 128, 103, 29, 116, 112, 103, 229, 230, 128, 104, 253, 86, 112, 105, 197, 200, 128, 106, 221, 56, 112, 107, 165, 170, 128, 108, 198, 84, 240, 109, 133, 140, 128, 110, 166, 54, 240, 111, 101, 110, 128, 112, 134, 24, 240, 113, 78, 139, 0, 114, 101, 250, 240, 115, 46, 109, 0, 116, 69, 220, 240, 117, 14, 79, 0, 118, 46, 249, 112, 118, 238, 49, 0, 120, 14, 219, 112, 120, 206, 19, 0, 121, 238, 189, 112, 122, 173, 245, 0, 123, 206, 159, 112, 124, 151, 17, 128, 125, 174, 129, 112, 126, 118, 243, 128, 127, 142, 99, 112, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 33, 6, 0, 0, 0, 0, 32, 248, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 12, 0, 0, 56, 64, 1, 16, 0, 0, 42, 48, 1, 8, 76, 77, 84, 0, 74, 77, 84, 0, 73, 68, 84, 0, 73, 83, 84, 0, 73, 68, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 73, 83, 84, 45, 50, 73, 68, 84, 44, 77, 51, 46, 52, 46, 52, 47, 50, 54, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Asia/Kabul": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 208, 249, 215, 64, 127, 255, 255, 255, 1, 2, 2, 0, 0, 64, 224, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 63, 72, 0, 8, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 52, 51, 48, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 51, 48, 62, 45, 52, 58, 51, 48, 10},
+
+ "zoneinfo/Asia/Kamchatka": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 9, 0, 0, 0, 16, 128, 0, 0, 0, 167, 82, 150, 196, 181, 163, 154, 208, 21, 39, 41, 64, 22, 24, 93, 176, 23, 8, 92, 192, 23, 249, 145, 48, 24, 233, 144, 64, 25, 218, 196, 176, 26, 204, 21, 64, 27, 188, 34, 96, 28, 172, 19, 96, 29, 156, 4, 96, 30, 139, 245, 96, 31, 123, 230, 96, 32, 107, 215, 96, 33, 91, 200, 96, 34, 75, 185, 96, 35, 59, 170, 96, 36, 43, 155, 96, 37, 27, 140, 96, 38, 11, 125, 96, 39, 4, 168, 224, 39, 244, 153, 224, 40, 228, 152, 240, 41, 120, 64, 240, 41, 212, 123, 224, 42, 196, 108, 224, 43, 180, 93, 224, 44, 164, 78, 224, 45, 148, 63, 224, 46, 132, 48, 224, 47, 116, 33, 224, 48, 100, 18, 224, 49, 93, 62, 96, 50, 114, 25, 96, 51, 61, 32, 96, 52, 81, 251, 96, 53, 29, 2, 96, 54, 49, 221, 96, 54, 252, 228, 96, 56, 26, 249, 224, 56, 220, 198, 96, 57, 250, 219, 224, 58, 188, 168, 96, 59, 218, 189, 224, 60, 165, 196, 224, 61, 186, 159, 224, 62, 133, 166, 224, 63, 154, 129, 224, 64, 101, 136, 224, 65, 131, 158, 96, 66, 69, 106, 224, 67, 99, 128, 96, 68, 37, 76, 224, 69, 67, 98, 96, 70, 5, 46, 224, 71, 35, 68, 96, 71, 238, 75, 96, 73, 3, 38, 96, 73, 206, 45, 96, 74, 227, 8, 96, 75, 174, 15, 96, 76, 204, 50, 240, 77, 141, 255, 112, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 4, 0, 0, 148, 188, 0, 0, 0, 0, 154, 176, 0, 4, 0, 0, 182, 208, 1, 8, 0, 0, 168, 192, 0, 12, 0, 0, 168, 192, 0, 12, 0, 0, 182, 208, 1, 8, 0, 0, 168, 192, 1, 12, 0, 0, 154, 176, 0, 4, 0, 0, 168, 192, 0, 12, 76, 77, 84, 0, 43, 49, 49, 0, 43, 49, 51, 0, 43, 49, 50, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Asia/Karachi": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 29, 128, 0, 0, 0, 137, 126, 252, 164, 204, 149, 50, 168, 210, 116, 18, 152, 221, 168, 224, 168, 2, 79, 171, 48, 60, 175, 69, 176, 61, 159, 40, 160, 72, 65, 160, 48, 73, 11, 71, 160, 73, 228, 221, 48, 74, 236, 123, 32, 0, 1, 2, 1, 3, 5, 4, 5, 4, 5, 4, 5, 0, 0, 62, 220, 0, 0, 0, 0, 77, 88, 0, 4, 0, 0, 91, 104, 1, 10, 0, 0, 70, 80, 0, 16, 0, 0, 84, 96, 1, 20, 0, 0, 70, 80, 0, 25, 76, 77, 84, 0, 43, 48, 53, 51, 48, 0, 43, 48, 54, 51, 48, 0, 43, 48, 53, 0, 80, 75, 83, 84, 0, 80, 75, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 80, 75, 84, 45, 53, 10},
+
+ "zoneinfo/Asia/Kashgar": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 176, 254, 186, 100, 127, 255, 255, 255, 0, 1, 1, 0, 0, 82, 28, 0, 0, 0, 0, 84, 96, 0, 4, 76, 77, 84, 0, 43, 48, 54, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Kathmandu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 16, 128, 0, 0, 0, 161, 242, 125, 132, 30, 24, 48, 168, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 79, 252, 0, 0, 0, 0, 77, 88, 0, 4, 0, 0, 80, 220, 0, 10, 76, 77, 84, 0, 43, 48, 53, 51, 48, 0, 43, 48, 53, 52, 53, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 52, 53, 62, 45, 53, 58, 52, 53, 10},
+
+ "zoneinfo/Asia/Katmandu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 16, 128, 0, 0, 0, 161, 242, 125, 132, 30, 24, 48, 168, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 79, 252, 0, 0, 0, 0, 77, 88, 0, 4, 0, 0, 80, 220, 0, 10, 76, 77, 84, 0, 43, 48, 53, 51, 48, 0, 43, 48, 53, 52, 53, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 52, 53, 62, 45, 53, 58, 52, 53, 10},
+
+ "zoneinfo/Asia/Khandyga": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 13, 0, 0, 0, 20, 128, 0, 0, 0, 161, 219, 228, 235, 181, 163, 197, 0, 21, 39, 83, 112, 22, 24, 135, 224, 23, 8, 134, 240, 23, 249, 187, 96, 24, 233, 186, 112, 25, 218, 238, 224, 26, 204, 63, 112, 27, 188, 76, 144, 28, 172, 61, 144, 29, 156, 46, 144, 30, 140, 31, 144, 31, 124, 16, 144, 32, 108, 1, 144, 33, 91, 242, 144, 34, 75, 227, 144, 35, 59, 212, 144, 36, 43, 197, 144, 37, 27, 182, 144, 38, 11, 167, 144, 39, 4, 211, 16, 39, 244, 196, 16, 40, 228, 195, 32, 41, 120, 107, 32, 41, 212, 166, 16, 42, 196, 151, 16, 43, 180, 136, 16, 44, 164, 121, 16, 45, 148, 106, 16, 46, 132, 91, 16, 47, 116, 76, 16, 48, 100, 61, 16, 49, 93, 104, 144, 50, 114, 67, 144, 51, 61, 74, 144, 52, 82, 37, 144, 53, 29, 44, 144, 54, 50, 7, 144, 54, 253, 14, 144, 56, 27, 36, 16, 56, 220, 240, 144, 57, 251, 6, 16, 58, 188, 210, 144, 59, 218, 232, 16, 60, 165, 239, 16, 61, 186, 202, 16, 62, 133, 209, 16, 63, 154, 172, 16, 63, 242, 228, 112, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 37, 105, 0, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 238, 103, 128, 73, 3, 66, 128, 73, 206, 73, 128, 74, 227, 36, 128, 75, 174, 43, 128, 76, 204, 65, 0, 77, 142, 13, 128, 78, 110, 2, 80, 84, 75, 201, 0, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 10, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 11, 9, 4, 4, 0, 0, 127, 21, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 0, 12, 0, 0, 126, 144, 0, 12, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 4, 0, 0, 154, 176, 1, 16, 0, 0, 140, 160, 0, 8, 0, 0, 140, 160, 0, 8, 0, 0, 154, 176, 0, 16, 0, 0, 126, 144, 0, 12, 76, 77, 84, 0, 43, 48, 56, 0, 43, 49, 48, 0, 43, 48, 57, 0, 43, 49, 49, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 57, 62, 45, 57, 10},
+
+ "zoneinfo/Asia/Kolkata": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 135, 157, 188, 186, 202, 219, 140, 40, 204, 5, 113, 24, 204, 149, 50, 168, 210, 116, 18, 152, 1, 2, 3, 2, 3, 2, 0, 0, 82, 208, 0, 0, 0, 0, 75, 70, 0, 4, 0, 0, 77, 88, 0, 8, 0, 0, 91, 104, 1, 12, 72, 77, 84, 0, 77, 77, 84, 0, 73, 83, 84, 0, 43, 48, 54, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 73, 83, 84, 45, 53, 58, 51, 48, 10},
+
+ "zoneinfo/Asia/Krasnoyarsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 161, 249, 13, 242, 181, 163, 225, 32, 21, 39, 111, 144, 22, 24, 164, 0, 23, 8, 163, 16, 23, 249, 215, 128, 24, 233, 214, 144, 25, 219, 11, 0, 26, 204, 91, 144, 27, 188, 104, 176, 28, 172, 89, 176, 29, 156, 74, 176, 30, 140, 59, 176, 31, 124, 44, 176, 32, 108, 29, 176, 33, 92, 14, 176, 34, 75, 255, 176, 35, 59, 240, 176, 36, 43, 225, 176, 37, 27, 210, 176, 38, 11, 195, 176, 39, 4, 239, 48, 39, 244, 224, 48, 40, 228, 223, 64, 41, 120, 135, 64, 41, 212, 194, 48, 42, 196, 179, 48, 43, 180, 164, 48, 44, 164, 149, 48, 45, 148, 134, 48, 46, 132, 119, 48, 47, 116, 104, 48, 48, 100, 89, 48, 49, 93, 132, 176, 50, 114, 95, 176, 51, 61, 102, 176, 52, 82, 65, 176, 53, 29, 72, 176, 54, 50, 35, 176, 54, 253, 42, 176, 56, 27, 64, 48, 56, 221, 12, 176, 57, 251, 34, 48, 58, 188, 238, 176, 59, 219, 4, 48, 60, 166, 11, 48, 61, 186, 230, 48, 62, 133, 237, 48, 63, 154, 200, 48, 64, 101, 207, 48, 65, 131, 228, 176, 66, 69, 177, 48, 67, 99, 198, 176, 68, 37, 147, 48, 69, 67, 168, 176, 70, 5, 117, 48, 71, 35, 138, 176, 71, 238, 145, 176, 73, 3, 108, 176, 73, 206, 115, 176, 74, 227, 78, 176, 75, 174, 85, 176, 76, 204, 107, 48, 77, 142, 55, 176, 84, 75, 229, 32, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 4, 4, 0, 0, 87, 14, 0, 0, 0, 0, 84, 96, 0, 4, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 0, 12, 0, 0, 98, 112, 0, 12, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 1, 12, 0, 0, 84, 96, 0, 4, 0, 0, 112, 128, 0, 8, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 0, 12, 76, 77, 84, 0, 43, 48, 54, 0, 43, 48, 56, 0, 43, 48, 55, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Kuala_Lumpur": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 32, 128, 0, 0, 0, 134, 131, 133, 163, 186, 103, 78, 144, 192, 10, 228, 96, 202, 179, 229, 96, 203, 145, 95, 8, 210, 72, 109, 240, 22, 145, 245, 8, 127, 255, 255, 255, 1, 2, 3, 4, 5, 6, 5, 7, 7, 0, 0, 95, 86, 0, 0, 0, 0, 97, 93, 0, 4, 0, 0, 98, 112, 0, 8, 0, 0, 103, 32, 1, 12, 0, 0, 103, 32, 0, 12, 0, 0, 105, 120, 0, 18, 0, 0, 126, 144, 0, 24, 0, 0, 112, 128, 0, 28, 76, 77, 84, 0, 83, 77, 84, 0, 43, 48, 55, 0, 43, 48, 55, 50, 48, 0, 43, 48, 55, 51, 48, 0, 43, 48, 57, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Kuching": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 173, 138, 6, 144, 186, 103, 71, 136, 191, 123, 39, 128, 191, 243, 27, 80, 193, 93, 172, 128, 193, 213, 160, 80, 195, 62, 224, 0, 195, 182, 211, 208, 197, 32, 19, 128, 197, 152, 7, 80, 199, 1, 71, 0, 199, 121, 58, 208, 200, 227, 204, 0, 201, 91, 191, 208, 202, 196, 255, 128, 203, 60, 243, 80, 203, 145, 88, 0, 210, 72, 109, 240, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 3, 0, 0, 103, 112, 0, 0, 0, 0, 105, 120, 0, 4, 0, 0, 117, 48, 1, 10, 0, 0, 112, 128, 0, 16, 0, 0, 126, 144, 0, 20, 0, 0, 112, 128, 0, 16, 76, 77, 84, 0, 43, 48, 55, 51, 48, 0, 43, 48, 56, 50, 48, 0, 43, 48, 56, 0, 43, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Kuwait": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 213, 27, 54, 180, 127, 255, 255, 255, 0, 1, 1, 0, 0, 43, 204, 0, 0, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 43, 48, 51, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Asia/Macao": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 146, 230, 36, 4, 239, 119, 209, 184, 240, 168, 78, 40, 241, 87, 179, 184, 242, 136, 48, 40, 243, 55, 100, 128, 244, 104, 18, 40, 245, 32, 178, 56, 246, 71, 244, 40, 247, 0, 99, 0, 248, 39, 164, 240, 249, 5, 96, 56, 249, 245, 67, 40, 250, 229, 66, 56, 251, 222, 95, 168, 252, 206, 94, 184, 253, 190, 65, 168, 254, 174, 64, 184, 255, 158, 35, 168, 0, 142, 34, 184, 1, 126, 5, 168, 2, 110, 4, 184, 3, 93, 231, 168, 4, 77, 181, 128, 5, 61, 152, 112, 6, 45, 151, 128, 7, 38, 180, 240, 8, 22, 180, 0, 9, 6, 200, 40, 9, 246, 199, 56, 10, 230, 170, 40, 11, 214, 169, 56, 12, 198, 140, 40, 13, 182, 139, 56, 14, 166, 110, 40, 15, 150, 60, 0, 16, 134, 30, 240, 17, 118, 30, 0, 18, 111, 59, 112, 19, 95, 58, 128, 20, 79, 29, 112, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 106, 124, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Macau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 146, 230, 36, 4, 239, 119, 209, 184, 240, 168, 78, 40, 241, 87, 179, 184, 242, 136, 48, 40, 243, 55, 100, 128, 244, 104, 18, 40, 245, 32, 178, 56, 246, 71, 244, 40, 247, 0, 99, 0, 248, 39, 164, 240, 249, 5, 96, 56, 249, 245, 67, 40, 250, 229, 66, 56, 251, 222, 95, 168, 252, 206, 94, 184, 253, 190, 65, 168, 254, 174, 64, 184, 255, 158, 35, 168, 0, 142, 34, 184, 1, 126, 5, 168, 2, 110, 4, 184, 3, 93, 231, 168, 4, 77, 181, 128, 5, 61, 152, 112, 6, 45, 151, 128, 7, 38, 180, 240, 8, 22, 180, 0, 9, 6, 200, 40, 9, 246, 199, 56, 10, 230, 170, 40, 11, 214, 169, 56, 12, 198, 140, 40, 13, 182, 139, 56, 14, 166, 110, 40, 15, 150, 60, 0, 16, 134, 30, 240, 17, 118, 30, 0, 18, 111, 59, 112, 19, 95, 58, 128, 20, 79, 29, 112, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 106, 124, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Magadan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 54, 160, 181, 163, 168, 224, 21, 39, 55, 80, 22, 24, 107, 192, 23, 8, 106, 208, 23, 249, 159, 64, 24, 233, 158, 80, 25, 218, 210, 192, 26, 204, 35, 80, 27, 188, 48, 112, 28, 172, 33, 112, 29, 156, 18, 112, 30, 140, 3, 112, 31, 123, 244, 112, 32, 107, 229, 112, 33, 91, 214, 112, 34, 75, 199, 112, 35, 59, 184, 112, 36, 43, 169, 112, 37, 27, 154, 112, 38, 11, 139, 112, 39, 4, 182, 240, 39, 244, 167, 240, 40, 228, 167, 0, 41, 120, 79, 0, 41, 212, 137, 240, 42, 196, 122, 240, 43, 180, 107, 240, 44, 164, 92, 240, 45, 148, 77, 240, 46, 132, 62, 240, 47, 116, 47, 240, 48, 100, 32, 240, 49, 93, 76, 112, 50, 114, 39, 112, 51, 61, 46, 112, 52, 82, 9, 112, 53, 29, 16, 112, 54, 49, 235, 112, 54, 252, 242, 112, 56, 27, 7, 240, 56, 220, 212, 112, 57, 250, 233, 240, 58, 188, 182, 112, 59, 218, 203, 240, 60, 165, 210, 240, 61, 186, 173, 240, 62, 133, 180, 240, 63, 154, 143, 240, 64, 101, 150, 240, 65, 131, 172, 112, 66, 69, 120, 240, 67, 99, 142, 112, 68, 37, 90, 240, 69, 67, 112, 112, 70, 5, 60, 240, 71, 35, 82, 112, 71, 238, 89, 112, 73, 3, 52, 112, 73, 206, 59, 112, 74, 227, 22, 112, 75, 174, 29, 112, 76, 204, 50, 240, 77, 141, 255, 112, 84, 75, 172, 224, 87, 27, 156, 0, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 7, 4, 4, 0, 0, 141, 96, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 0, 12, 0, 0, 154, 176, 0, 12, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 1, 12, 0, 0, 140, 160, 0, 4, 0, 0, 168, 192, 0, 8, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 0, 12, 76, 77, 84, 0, 43, 49, 48, 0, 43, 49, 50, 0, 43, 49, 49, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Asia/Makassar": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 21, 128, 0, 0, 0, 161, 242, 93, 144, 186, 22, 213, 144, 203, 136, 29, 128, 210, 86, 238, 112, 0, 1, 2, 3, 4, 0, 0, 111, 240, 0, 0, 0, 0, 111, 240, 0, 4, 0, 0, 112, 128, 0, 8, 0, 0, 126, 144, 0, 12, 0, 0, 112, 128, 0, 16, 76, 77, 84, 0, 77, 77, 84, 0, 43, 48, 56, 0, 43, 48, 57, 0, 87, 73, 84, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87, 73, 84, 65, 45, 56, 10},
+
+ "zoneinfo/Asia/Manila": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 193, 156, 244, 128, 194, 22, 48, 112, 203, 242, 231, 0, 208, 169, 37, 112, 226, 108, 57, 0, 226, 213, 162, 240, 15, 117, 70, 128, 16, 102, 122, 240, 127, 255, 255, 255, 2, 1, 2, 3, 2, 1, 2, 1, 2, 2, 0, 0, 113, 112, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 0, 0, 126, 144, 0, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 43, 48, 57, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Muscat": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 161, 242, 153, 168, 127, 255, 255, 255, 0, 1, 1, 0, 0, 51, 216, 0, 0, 0, 0, 56, 64, 0, 4, 76, 77, 84, 0, 43, 48, 52, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Asia/Nicosia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 165, 119, 30, 184, 9, 237, 175, 224, 10, 221, 146, 208, 11, 250, 100, 224, 12, 190, 198, 80, 13, 164, 57, 96, 14, 138, 225, 208, 15, 132, 27, 96, 16, 117, 79, 208, 17, 99, 253, 96, 18, 83, 224, 80, 19, 77, 25, 224, 20, 51, 194, 80, 21, 35, 193, 96, 22, 19, 164, 80, 23, 3, 163, 96, 23, 243, 134, 80, 24, 227, 133, 96, 25, 211, 104, 80, 26, 195, 103, 96, 27, 188, 132, 208, 28, 172, 131, 224, 29, 156, 102, 208, 30, 140, 101, 224, 31, 124, 72, 208, 32, 108, 71, 224, 33, 92, 42, 208, 34, 76, 41, 224, 35, 60, 12, 208, 36, 44, 11, 224, 37, 27, 238, 208, 38, 11, 237, 224, 39, 5, 11, 80, 39, 245, 10, 96, 40, 228, 237, 80, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 77, 145, 208, 51, 61, 144, 224, 52, 45, 115, 208, 53, 29, 114, 224, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 31, 72, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 4, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Asia/Novokuznetsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 9, 0, 0, 0, 16, 128, 0, 0, 0, 170, 24, 32, 192, 181, 163, 225, 32, 21, 39, 111, 144, 22, 24, 164, 0, 23, 8, 163, 16, 23, 249, 215, 128, 24, 233, 214, 144, 25, 219, 11, 0, 26, 204, 91, 144, 27, 188, 104, 176, 28, 172, 89, 176, 29, 156, 74, 176, 30, 140, 59, 176, 31, 124, 44, 176, 32, 108, 29, 176, 33, 92, 14, 176, 34, 75, 255, 176, 35, 59, 240, 176, 36, 43, 225, 176, 37, 27, 210, 176, 38, 11, 195, 176, 39, 4, 239, 48, 39, 244, 224, 48, 40, 228, 223, 64, 41, 120, 135, 64, 41, 212, 194, 48, 42, 196, 179, 48, 43, 180, 164, 48, 44, 164, 149, 48, 45, 148, 134, 48, 46, 132, 119, 48, 47, 116, 104, 48, 48, 100, 89, 48, 49, 93, 132, 176, 50, 114, 95, 176, 51, 61, 102, 176, 52, 82, 65, 176, 53, 29, 72, 176, 54, 50, 35, 176, 54, 253, 42, 176, 56, 27, 64, 48, 56, 221, 12, 176, 57, 251, 34, 48, 58, 188, 238, 176, 59, 219, 4, 48, 60, 166, 11, 48, 61, 186, 230, 48, 62, 133, 237, 48, 63, 154, 200, 48, 64, 101, 207, 48, 65, 131, 228, 176, 66, 69, 177, 48, 67, 99, 198, 176, 68, 37, 147, 48, 69, 67, 168, 176, 70, 5, 117, 48, 71, 35, 138, 176, 71, 238, 145, 176, 73, 3, 108, 176, 73, 206, 115, 176, 74, 227, 78, 176, 75, 174, 85, 176, 76, 204, 121, 64, 77, 142, 69, 192, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 4, 0, 0, 81, 192, 0, 0, 0, 0, 84, 96, 0, 4, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 0, 12, 0, 0, 98, 112, 0, 12, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 1, 12, 0, 0, 84, 96, 0, 4, 0, 0, 98, 112, 0, 12, 76, 77, 84, 0, 43, 48, 54, 0, 43, 48, 56, 0, 43, 48, 55, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Novosibirsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 161, 219, 25, 36, 181, 163, 225, 32, 21, 39, 111, 144, 22, 24, 164, 0, 23, 8, 163, 16, 23, 249, 215, 128, 24, 233, 214, 144, 25, 219, 11, 0, 26, 204, 91, 144, 27, 188, 104, 176, 28, 172, 89, 176, 29, 156, 74, 176, 30, 140, 59, 176, 31, 124, 44, 176, 32, 108, 29, 176, 33, 92, 14, 176, 34, 75, 255, 176, 35, 59, 240, 176, 36, 43, 225, 176, 37, 27, 210, 176, 38, 11, 195, 176, 39, 4, 239, 48, 39, 244, 224, 48, 40, 228, 223, 64, 41, 120, 135, 64, 41, 212, 194, 48, 42, 196, 179, 48, 43, 180, 164, 48, 43, 254, 78, 0, 44, 164, 163, 64, 45, 148, 148, 64, 46, 132, 133, 64, 47, 116, 118, 64, 48, 100, 103, 64, 49, 93, 146, 192, 50, 114, 109, 192, 51, 61, 116, 192, 52, 82, 79, 192, 53, 29, 86, 192, 54, 50, 49, 192, 54, 253, 56, 192, 56, 27, 78, 64, 56, 221, 26, 192, 57, 251, 48, 64, 58, 188, 252, 192, 59, 219, 18, 64, 60, 166, 25, 64, 61, 186, 244, 64, 62, 133, 251, 64, 63, 154, 214, 64, 64, 101, 221, 64, 65, 131, 242, 192, 66, 69, 191, 64, 67, 99, 212, 192, 68, 37, 161, 64, 69, 67, 182, 192, 70, 5, 131, 64, 71, 35, 152, 192, 71, 238, 159, 192, 73, 3, 122, 192, 73, 206, 129, 192, 74, 227, 92, 192, 75, 174, 99, 192, 76, 204, 121, 64, 77, 142, 69, 192, 84, 75, 243, 48, 87, 147, 204, 192, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 8, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 4, 0, 0, 77, 188, 0, 0, 0, 0, 84, 96, 0, 4, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 0, 12, 0, 0, 98, 112, 0, 12, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 1, 12, 0, 0, 84, 96, 0, 4, 0, 0, 98, 112, 1, 12, 0, 0, 98, 112, 0, 12, 76, 77, 84, 0, 43, 48, 54, 0, 43, 48, 56, 0, 43, 48, 55, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Omsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 161, 179, 64, 182, 181, 163, 239, 48, 21, 39, 125, 160, 22, 24, 178, 16, 23, 8, 177, 32, 23, 249, 229, 144, 24, 233, 228, 160, 25, 219, 25, 16, 26, 204, 105, 160, 27, 188, 118, 192, 28, 172, 103, 192, 29, 156, 88, 192, 30, 140, 73, 192, 31, 124, 58, 192, 32, 108, 43, 192, 33, 92, 28, 192, 34, 76, 13, 192, 35, 59, 254, 192, 36, 43, 239, 192, 37, 27, 224, 192, 38, 11, 209, 192, 39, 4, 253, 64, 39, 244, 238, 64, 40, 228, 237, 80, 41, 120, 149, 80, 41, 212, 208, 64, 42, 196, 193, 64, 43, 180, 178, 64, 44, 164, 163, 64, 45, 148, 148, 64, 46, 132, 133, 64, 47, 116, 118, 64, 48, 100, 103, 64, 49, 93, 146, 192, 50, 114, 109, 192, 51, 61, 116, 192, 52, 82, 79, 192, 53, 29, 86, 192, 54, 50, 49, 192, 54, 253, 56, 192, 56, 27, 78, 64, 56, 221, 26, 192, 57, 251, 48, 64, 58, 188, 252, 192, 59, 219, 18, 64, 60, 166, 25, 64, 61, 186, 244, 64, 62, 133, 251, 64, 63, 154, 214, 64, 64, 101, 221, 64, 65, 131, 242, 192, 66, 69, 191, 64, 67, 99, 212, 192, 68, 37, 161, 64, 69, 67, 182, 192, 70, 5, 131, 64, 71, 35, 152, 192, 71, 238, 159, 192, 73, 3, 122, 192, 73, 206, 129, 192, 74, 227, 92, 192, 75, 174, 99, 192, 76, 204, 121, 64, 77, 142, 69, 192, 84, 75, 243, 48, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 4, 4, 0, 0, 68, 202, 0, 0, 0, 0, 70, 80, 0, 4, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 0, 12, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 4, 0, 0, 98, 112, 0, 8, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 0, 12, 76, 77, 84, 0, 43, 48, 53, 0, 43, 48, 55, 0, 43, 48, 54, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Oral": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 10, 0, 0, 0, 20, 128, 0, 0, 0, 170, 25, 147, 220, 181, 164, 11, 80, 21, 39, 139, 176, 22, 24, 192, 32, 23, 8, 177, 32, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 252, 224, 38, 11, 237, 224, 39, 5, 25, 96, 39, 245, 10, 96, 40, 228, 251, 96, 41, 120, 163, 96, 41, 212, 222, 80, 42, 196, 221, 96, 43, 180, 206, 96, 44, 164, 191, 96, 45, 148, 176, 96, 46, 132, 161, 96, 47, 116, 146, 96, 48, 100, 131, 96, 49, 93, 174, 224, 50, 114, 137, 224, 51, 61, 144, 224, 52, 82, 107, 224, 53, 29, 114, 224, 54, 50, 77, 224, 54, 253, 84, 224, 56, 27, 106, 96, 56, 221, 54, 224, 57, 251, 76, 96, 58, 189, 24, 224, 59, 219, 46, 96, 60, 166, 53, 96, 61, 187, 16, 96, 62, 134, 23, 96, 63, 154, 242, 96, 64, 101, 249, 96, 65, 132, 14, 224, 127, 255, 255, 255, 0, 1, 2, 3, 4, 3, 2, 3, 2, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 7, 8, 7, 8, 5, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 5, 5, 0, 0, 48, 36, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 84, 96, 0, 12, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 16, 0, 0, 70, 80, 0, 8, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 54, 0, 43, 48, 52, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Phnom_Penh": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 162, 106, 103, 196, 127, 255, 255, 255, 1, 2, 2, 0, 0, 94, 60, 0, 0, 0, 0, 94, 60, 0, 4, 0, 0, 98, 112, 0, 8, 76, 77, 84, 0, 66, 77, 84, 0, 43, 48, 55, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Pontianak": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 31, 128, 0, 0, 0, 139, 255, 142, 0, 186, 22, 223, 0, 203, 121, 164, 8, 210, 86, 238, 112, 215, 60, 198, 8, 218, 255, 38, 0, 244, 181, 190, 136, 33, 218, 116, 128, 0, 1, 2, 3, 2, 4, 2, 5, 6, 0, 0, 102, 128, 0, 0, 0, 0, 102, 128, 0, 4, 0, 0, 105, 120, 0, 8, 0, 0, 126, 144, 0, 14, 0, 0, 112, 128, 0, 18, 0, 0, 112, 128, 0, 22, 0, 0, 98, 112, 0, 27, 76, 77, 84, 0, 80, 77, 84, 0, 43, 48, 55, 51, 48, 0, 43, 48, 57, 0, 43, 48, 56, 0, 87, 73, 84, 65, 0, 87, 73, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87, 73, 66, 45, 55, 10},
+
+ "zoneinfo/Asia/Pyongyang": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 139, 215, 241, 156, 146, 230, 22, 248, 210, 47, 97, 112, 85, 206, 2, 112, 0, 1, 2, 3, 1, 0, 0, 117, 228, 0, 0, 0, 0, 119, 136, 0, 4, 0, 0, 126, 144, 0, 8, 0, 0, 126, 144, 0, 4, 0, 0, 119, 136, 0, 4, 76, 77, 84, 0, 75, 83, 84, 0, 74, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 75, 83, 84, 45, 56, 58, 51, 48, 10},
+
+ "zoneinfo/Asia/Qatar": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 161, 242, 157, 48, 4, 138, 146, 192, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 48, 80, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 42, 48, 0, 8, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Asia/Qyzylorda": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 134, 160, 181, 163, 253, 64, 21, 39, 139, 176, 22, 24, 192, 32, 23, 8, 177, 32, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 251, 96, 41, 120, 149, 80, 41, 212, 208, 64, 42, 196, 207, 80, 43, 180, 192, 80, 44, 164, 177, 80, 45, 148, 162, 80, 46, 132, 147, 80, 47, 116, 132, 80, 48, 100, 117, 80, 49, 93, 160, 208, 50, 114, 123, 208, 51, 61, 130, 208, 52, 82, 93, 208, 53, 29, 100, 208, 54, 50, 63, 208, 54, 253, 70, 208, 56, 27, 92, 80, 56, 221, 40, 208, 57, 251, 62, 80, 58, 189, 10, 208, 59, 219, 32, 80, 60, 166, 39, 80, 61, 187, 2, 80, 62, 134, 9, 80, 63, 154, 228, 80, 64, 101, 235, 80, 65, 132, 0, 208, 127, 255, 255, 255, 0, 1, 2, 3, 4, 3, 2, 3, 2, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 5, 9, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 9, 9, 0, 0, 61, 96, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 84, 96, 0, 12, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 4, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 1, 12, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 53, 0, 43, 48, 54, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Rangoon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 18, 128, 0, 0, 0, 161, 242, 115, 81, 203, 242, 252, 24, 209, 154, 103, 240, 127, 255, 255, 255, 1, 2, 3, 2, 2, 0, 0, 90, 47, 0, 0, 0, 0, 90, 47, 0, 4, 0, 0, 91, 104, 0, 8, 0, 0, 126, 144, 0, 14, 0, 0, 91, 104, 0, 8, 76, 77, 84, 0, 82, 77, 84, 0, 43, 48, 54, 51, 48, 0, 43, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 51, 48, 62, 45, 54, 58, 51, 48, 10},
+
+ "zoneinfo/Asia/Riyadh": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 213, 27, 54, 180, 127, 255, 255, 255, 0, 1, 1, 0, 0, 43, 204, 0, 0, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 43, 48, 51, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Asia/Saigon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 136, 140, 67, 128, 145, 163, 43, 10, 205, 53, 230, 128, 209, 89, 206, 112, 210, 59, 62, 240, 213, 50, 187, 16, 228, 182, 228, 128, 237, 47, 152, 0, 10, 61, 199, 0, 127, 255, 255, 255, 0, 1, 2, 3, 4, 2, 3, 2, 3, 2, 2, 0, 0, 100, 0, 0, 0, 0, 0, 99, 246, 0, 4, 0, 0, 98, 112, 0, 9, 0, 0, 112, 128, 0, 13, 0, 0, 126, 144, 0, 17, 0, 0, 98, 112, 0, 9, 76, 77, 84, 0, 80, 76, 77, 84, 0, 43, 48, 55, 0, 43, 48, 56, 0, 43, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Sakhalin": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 9, 0, 0, 0, 20, 128, 0, 0, 0, 134, 240, 205, 184, 210, 48, 178, 240, 21, 39, 55, 80, 22, 24, 107, 192, 23, 8, 106, 208, 23, 249, 159, 64, 24, 233, 158, 80, 25, 218, 210, 192, 26, 204, 35, 80, 27, 188, 48, 112, 28, 172, 33, 112, 29, 156, 18, 112, 30, 140, 3, 112, 31, 123, 244, 112, 32, 107, 229, 112, 33, 91, 214, 112, 34, 75, 199, 112, 35, 59, 184, 112, 36, 43, 169, 112, 37, 27, 154, 112, 38, 11, 139, 112, 39, 4, 182, 240, 39, 244, 167, 240, 40, 228, 167, 0, 41, 120, 79, 0, 41, 212, 137, 240, 42, 196, 122, 240, 43, 180, 107, 240, 44, 164, 92, 240, 45, 148, 77, 240, 46, 132, 62, 240, 47, 116, 47, 240, 48, 100, 32, 240, 49, 93, 76, 112, 50, 114, 39, 112, 51, 61, 46, 112, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 250, 248, 0, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 37, 105, 0, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 238, 103, 128, 73, 3, 66, 128, 73, 206, 73, 128, 74, 227, 36, 128, 75, 174, 43, 128, 76, 204, 65, 0, 77, 142, 13, 128, 84, 75, 186, 240, 86, 246, 178, 0, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 4, 0, 0, 133, 200, 0, 0, 0, 0, 126, 144, 0, 4, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 0, 12, 0, 0, 154, 176, 0, 12, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 1, 12, 0, 0, 140, 160, 0, 16, 0, 0, 154, 176, 0, 12, 76, 77, 84, 0, 43, 48, 57, 0, 43, 49, 50, 0, 43, 49, 49, 0, 43, 49, 48, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Asia/Samarkand": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 7, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 133, 55, 181, 163, 253, 64, 21, 39, 139, 176, 22, 24, 192, 32, 23, 8, 177, 32, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 237, 80, 41, 96, 190, 48, 127, 255, 255, 255, 0, 1, 2, 3, 4, 3, 2, 3, 2, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 2, 2, 0, 0, 62, 201, 0, 0, 0, 0, 56, 64, 0, 4, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 84, 96, 0, 12, 0, 0, 70, 80, 0, 8, 0, 0, 84, 96, 1, 12, 76, 77, 84, 0, 43, 48, 52, 0, 43, 48, 53, 0, 43, 48, 54, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Seoul": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 139, 215, 240, 120, 146, 230, 22, 248, 210, 67, 39, 240, 226, 79, 41, 240, 228, 107, 183, 248, 229, 19, 24, 104, 230, 98, 3, 120, 231, 17, 76, 232, 232, 47, 112, 120, 232, 231, 244, 104, 234, 15, 82, 120, 234, 199, 214, 104, 235, 239, 52, 120, 236, 167, 184, 104, 237, 207, 22, 120, 238, 135, 154, 104, 240, 53, 113, 120, 32, 163, 96, 144, 33, 110, 103, 144, 34, 131, 66, 144, 35, 78, 73, 144, 0, 1, 2, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 3, 5, 3, 5, 3, 0, 0, 119, 8, 0, 0, 0, 0, 119, 136, 0, 4, 0, 0, 126, 144, 0, 8, 0, 0, 126, 144, 0, 4, 0, 0, 133, 152, 1, 12, 0, 0, 140, 160, 1, 12, 76, 77, 84, 0, 75, 83, 84, 0, 74, 83, 84, 0, 75, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 75, 83, 84, 45, 57, 10},
+
+ "zoneinfo/Asia/Shanghai": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 200, 92, 1, 128, 200, 250, 39, 112, 201, 213, 14, 128, 202, 219, 90, 240, 30, 186, 54, 0, 31, 105, 127, 112, 32, 126, 104, 128, 33, 73, 97, 112, 34, 94, 74, 128, 35, 41, 67, 112, 36, 71, 103, 0, 37, 18, 95, 240, 38, 39, 73, 0, 38, 242, 65, 240, 40, 7, 43, 0, 40, 210, 35, 240, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 113, 215, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Singapore": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 32, 128, 0, 0, 0, 134, 131, 133, 163, 186, 103, 78, 144, 192, 10, 228, 96, 202, 179, 229, 96, 203, 145, 95, 8, 210, 72, 109, 240, 22, 145, 245, 8, 127, 255, 255, 255, 1, 2, 3, 4, 5, 6, 5, 7, 7, 0, 0, 97, 93, 0, 0, 0, 0, 97, 93, 0, 4, 0, 0, 98, 112, 0, 8, 0, 0, 103, 32, 1, 12, 0, 0, 103, 32, 0, 12, 0, 0, 105, 120, 0, 18, 0, 0, 126, 144, 0, 24, 0, 0, 112, 128, 0, 28, 76, 77, 84, 0, 83, 77, 84, 0, 43, 48, 55, 0, 43, 48, 55, 50, 48, 0, 43, 48, 55, 51, 48, 0, 43, 48, 57, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Srednekolymsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 51, 228, 181, 163, 168, 224, 21, 39, 55, 80, 22, 24, 107, 192, 23, 8, 106, 208, 23, 249, 159, 64, 24, 233, 158, 80, 25, 218, 210, 192, 26, 204, 35, 80, 27, 188, 48, 112, 28, 172, 33, 112, 29, 156, 18, 112, 30, 140, 3, 112, 31, 123, 244, 112, 32, 107, 229, 112, 33, 91, 214, 112, 34, 75, 199, 112, 35, 59, 184, 112, 36, 43, 169, 112, 37, 27, 154, 112, 38, 11, 139, 112, 39, 4, 182, 240, 39, 244, 167, 240, 40, 228, 167, 0, 41, 120, 79, 0, 41, 212, 137, 240, 42, 196, 122, 240, 43, 180, 107, 240, 44, 164, 92, 240, 45, 148, 77, 240, 46, 132, 62, 240, 47, 116, 47, 240, 48, 100, 32, 240, 49, 93, 76, 112, 50, 114, 39, 112, 51, 61, 46, 112, 52, 82, 9, 112, 53, 29, 16, 112, 54, 49, 235, 112, 54, 252, 242, 112, 56, 27, 7, 240, 56, 220, 212, 112, 57, 250, 233, 240, 58, 188, 182, 112, 59, 218, 203, 240, 60, 165, 210, 240, 61, 186, 173, 240, 62, 133, 180, 240, 63, 154, 143, 240, 64, 101, 150, 240, 65, 131, 172, 112, 66, 69, 120, 240, 67, 99, 142, 112, 68, 37, 90, 240, 69, 67, 112, 112, 70, 5, 60, 240, 71, 35, 82, 112, 71, 238, 89, 112, 73, 3, 52, 112, 73, 206, 59, 112, 74, 227, 22, 112, 75, 174, 29, 112, 76, 204, 50, 240, 77, 141, 255, 112, 84, 75, 172, 224, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 4, 4, 0, 0, 144, 28, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 0, 12, 0, 0, 154, 176, 0, 12, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 1, 12, 0, 0, 140, 160, 0, 4, 0, 0, 168, 192, 0, 8, 0, 0, 168, 192, 1, 8, 0, 0, 154, 176, 0, 12, 76, 77, 84, 0, 43, 49, 48, 0, 43, 49, 50, 0, 43, 49, 49, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Asia/Taipei": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 5, 0, 0, 0, 16, 128, 0, 0, 0, 195, 85, 73, 128, 210, 84, 89, 128, 211, 139, 123, 128, 212, 66, 173, 240, 213, 69, 34, 0, 214, 76, 191, 240, 215, 60, 191, 0, 216, 6, 102, 112, 217, 29, 242, 128, 217, 231, 153, 240, 218, 255, 38, 0, 219, 200, 205, 112, 220, 224, 89, 128, 221, 170, 0, 240, 222, 114, 115, 0, 223, 181, 100, 112, 224, 124, 133, 0, 225, 150, 151, 240, 226, 93, 184, 128, 227, 119, 203, 112, 228, 62, 236, 0, 229, 48, 32, 112, 230, 33, 113, 0, 231, 18, 165, 112, 232, 2, 164, 128, 232, 243, 216, 240, 233, 227, 216, 0, 234, 213, 12, 112, 235, 197, 11, 128, 236, 182, 63, 240, 237, 247, 252, 0, 238, 152, 196, 240, 239, 217, 47, 128, 240, 121, 248, 112, 7, 252, 86, 0, 8, 237, 138, 112, 9, 221, 137, 128, 10, 206, 189, 240, 17, 219, 161, 128, 18, 84, 221, 112, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, 0, 113, 232, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 126, 144, 0, 8, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 4, 76, 77, 84, 0, 67, 83, 84, 0, 74, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Asia/Tashkent": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 8, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 131, 9, 181, 163, 239, 48, 21, 39, 125, 160, 22, 24, 178, 16, 23, 8, 177, 32, 23, 249, 229, 144, 24, 233, 228, 160, 25, 219, 25, 16, 26, 204, 105, 160, 27, 188, 118, 192, 28, 172, 103, 192, 29, 156, 88, 192, 30, 140, 73, 192, 31, 124, 58, 192, 32, 108, 43, 192, 33, 92, 28, 192, 34, 76, 13, 192, 35, 59, 254, 192, 36, 43, 239, 192, 37, 27, 224, 192, 38, 11, 209, 192, 39, 4, 253, 64, 39, 244, 238, 64, 40, 228, 237, 80, 41, 96, 190, 48, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 1, 1, 0, 0, 64, 247, 0, 0, 0, 0, 70, 80, 0, 4, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 0, 12, 0, 0, 98, 112, 1, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 4, 76, 77, 84, 0, 43, 48, 53, 0, 43, 48, 55, 0, 43, 48, 54, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Tbilisi": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 11, 0, 0, 0, 21, 128, 0, 0, 0, 170, 25, 154, 1, 231, 218, 12, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 27, 252, 224, 38, 11, 237, 224, 39, 5, 25, 96, 39, 245, 10, 96, 40, 229, 9, 112, 41, 96, 218, 80, 41, 212, 222, 80, 42, 196, 193, 64, 43, 180, 192, 80, 44, 164, 163, 64, 45, 148, 162, 80, 46, 132, 133, 64, 47, 116, 118, 64, 48, 100, 89, 48, 49, 93, 146, 192, 51, 61, 102, 176, 52, 82, 65, 176, 53, 29, 86, 192, 54, 50, 35, 176, 54, 253, 56, 192, 56, 27, 64, 48, 56, 221, 26, 192, 57, 251, 34, 48, 58, 188, 252, 192, 59, 219, 4, 48, 60, 166, 25, 64, 61, 186, 230, 48, 62, 133, 251, 64, 63, 154, 200, 48, 64, 101, 221, 64, 64, 221, 199, 176, 65, 132, 28, 240, 66, 69, 233, 112, 127, 255, 255, 255, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 2, 9, 2, 9, 2, 9, 4, 3, 4, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 9, 8, 4, 4, 0, 0, 41, 255, 0, 0, 0, 0, 41, 255, 0, 4, 0, 0, 42, 48, 0, 9, 0, 0, 70, 80, 1, 13, 0, 0, 56, 64, 0, 17, 0, 0, 56, 64, 0, 17, 0, 0, 70, 80, 1, 13, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 9, 0, 0, 56, 64, 1, 17, 0, 0, 56, 64, 0, 17, 76, 77, 84, 0, 84, 66, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 52, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Asia/Tehran": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 154, 108, 125, 200, 210, 219, 18, 200, 14, 187, 162, 72, 15, 116, 45, 64, 16, 142, 64, 48, 16, 237, 58, 64, 17, 85, 103, 200, 18, 69, 74, 184, 19, 55, 236, 200, 20, 45, 21, 184, 40, 32, 118, 200, 40, 219, 157, 184, 41, 203, 156, 200, 42, 190, 34, 184, 43, 172, 208, 72, 44, 159, 86, 56, 45, 142, 3, 200, 46, 128, 137, 184, 47, 111, 55, 72, 48, 97, 189, 56, 49, 80, 106, 200, 50, 66, 240, 184, 51, 50, 239, 200, 52, 37, 117, 184, 53, 20, 35, 72, 54, 6, 169, 56, 54, 245, 86, 200, 55, 231, 220, 184, 56, 214, 138, 72, 57, 201, 16, 56, 58, 185, 15, 72, 59, 171, 149, 56, 60, 154, 66, 200, 61, 140, 200, 184, 62, 123, 118, 72, 63, 109, 252, 56, 64, 92, 169, 200, 65, 79, 47, 184, 66, 63, 46, 200, 67, 49, 180, 184, 71, 226, 201, 72, 72, 213, 79, 56, 73, 197, 78, 72, 74, 183, 212, 56, 75, 166, 129, 200, 76, 153, 7, 184, 77, 135, 181, 72, 78, 122, 59, 56, 79, 104, 232, 200, 80, 91, 110, 184, 81, 75, 109, 200, 82, 61, 243, 184, 83, 44, 161, 72, 84, 31, 39, 56, 85, 13, 212, 200, 86, 0, 90, 184, 86, 239, 8, 72, 87, 225, 142, 56, 88, 209, 141, 72, 89, 196, 19, 56, 90, 178, 192, 200, 91, 165, 70, 184, 92, 147, 244, 72, 93, 134, 122, 56, 94, 117, 39, 200, 95, 103, 173, 184, 96, 87, 172, 200, 97, 74, 50, 184, 98, 56, 224, 72, 99, 43, 102, 56, 100, 26, 19, 200, 101, 12, 153, 184, 101, 251, 71, 72, 102, 237, 205, 56, 103, 221, 204, 72, 104, 208, 82, 56, 105, 190, 255, 200, 106, 177, 133, 184, 107, 160, 51, 72, 108, 146, 185, 56, 109, 129, 102, 200, 110, 115, 236, 184, 111, 98, 154, 72, 112, 85, 32, 56, 113, 69, 31, 72, 114, 55, 165, 56, 115, 38, 82, 200, 116, 24, 216, 184, 117, 7, 134, 72, 117, 250, 12, 56, 118, 232, 185, 200, 119, 219, 63, 184, 120, 203, 62, 200, 121, 189, 196, 184, 122, 172, 114, 72, 123, 158, 248, 56, 124, 141, 165, 200, 125, 128, 43, 184, 126, 110, 217, 72, 127, 97, 95, 56, 127, 255, 255, 255, 0, 1, 2, 4, 3, 4, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 2, 0, 0, 48, 56, 0, 0, 0, 0, 48, 56, 0, 4, 0, 0, 49, 56, 0, 8, 0, 0, 70, 80, 1, 14, 0, 0, 56, 64, 0, 18, 0, 0, 63, 72, 1, 22, 0, 0, 49, 56, 0, 8, 76, 77, 84, 0, 84, 77, 84, 0, 43, 48, 51, 51, 48, 0, 43, 48, 53, 0, 43, 48, 52, 0, 43, 48, 52, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 51, 48, 62, 45, 51, 58, 51, 48, 60, 43, 48, 52, 51, 48, 62, 44, 74, 56, 48, 47, 48, 44, 74, 50, 54, 52, 47, 48, 10},
+
+ "zoneinfo/Asia/Tel_Aviv": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 158, 48, 69, 136, 200, 89, 178, 224, 204, 229, 193, 80, 205, 172, 254, 0, 206, 198, 244, 208, 207, 143, 102, 224, 208, 169, 121, 208, 209, 132, 96, 224, 210, 138, 201, 112, 211, 101, 176, 128, 212, 107, 224, 208, 215, 90, 20, 96, 215, 223, 31, 192, 216, 47, 181, 112, 217, 30, 70, 224, 218, 16, 232, 240, 218, 235, 179, 224, 219, 180, 52, 0, 220, 185, 32, 224, 221, 224, 141, 0, 222, 180, 206, 128, 223, 164, 191, 128, 224, 139, 118, 0, 225, 86, 125, 0, 226, 190, 74, 96, 227, 54, 52, 208, 228, 156, 247, 0, 229, 22, 22, 208, 230, 116, 211, 224, 231, 17, 210, 128, 232, 39, 255, 0, 232, 232, 79, 208, 8, 124, 139, 224, 8, 253, 176, 208, 9, 246, 234, 96, 10, 166, 51, 208, 28, 190, 248, 224, 29, 137, 241, 208, 30, 204, 255, 96, 31, 96, 153, 80, 32, 130, 177, 96, 33, 73, 181, 208, 34, 94, 158, 224, 35, 32, 93, 80, 36, 90, 48, 96, 37, 0, 63, 80, 38, 11, 237, 224, 38, 214, 230, 208, 39, 235, 207, 224, 40, 192, 3, 80, 41, 212, 236, 96, 42, 169, 31, 208, 43, 187, 101, 224, 44, 137, 1, 208, 45, 155, 71, 224, 46, 95, 169, 80, 47, 123, 41, 224, 48, 72, 197, 208, 49, 72, 150, 224, 50, 60, 110, 80, 51, 49, 179, 96, 52, 26, 254, 208, 53, 17, 149, 96, 53, 241, 166, 80, 55, 4, 8, 128, 55, 207, 1, 112, 56, 246, 95, 128, 57, 220, 249, 224, 58, 208, 237, 112, 59, 174, 91, 96, 60, 163, 160, 112, 61, 160, 178, 96, 62, 131, 130, 112, 63, 124, 159, 224, 64, 115, 54, 112, 65, 80, 164, 96, 66, 76, 143, 0, 67, 72, 79, 112, 68, 44, 113, 0, 69, 30, 246, 240, 70, 12, 83, 0, 70, 236, 99, 240, 71, 236, 53, 0, 72, 231, 245, 112, 73, 204, 23, 0, 74, 190, 156, 240, 75, 171, 249, 0, 76, 140, 9, 240, 77, 149, 21, 128, 78, 135, 155, 112, 79, 116, 247, 128, 80, 94, 66, 240, 81, 84, 217, 128, 82, 108, 73, 112, 83, 52, 187, 128, 84, 76, 43, 112, 85, 20, 157, 128, 86, 44, 13, 112, 86, 244, 127, 128, 88, 21, 41, 240, 88, 212, 97, 128, 89, 245, 11, 240, 90, 180, 67, 128, 91, 212, 237, 240, 92, 157, 96, 0, 93, 180, 207, 240, 94, 125, 66, 0, 95, 148, 177, 240, 96, 93, 36, 0, 97, 125, 206, 112, 98, 61, 6, 0, 99, 93, 176, 112, 100, 28, 232, 0, 101, 61, 146, 112, 102, 6, 4, 128, 103, 29, 116, 112, 103, 229, 230, 128, 104, 253, 86, 112, 105, 197, 200, 128, 106, 221, 56, 112, 107, 165, 170, 128, 108, 198, 84, 240, 109, 133, 140, 128, 110, 166, 54, 240, 111, 101, 110, 128, 112, 134, 24, 240, 113, 78, 139, 0, 114, 101, 250, 240, 115, 46, 109, 0, 116, 69, 220, 240, 117, 14, 79, 0, 118, 46, 249, 112, 118, 238, 49, 0, 120, 14, 219, 112, 120, 206, 19, 0, 121, 238, 189, 112, 122, 173, 245, 0, 123, 206, 159, 112, 124, 151, 17, 128, 125, 174, 129, 112, 126, 118, 243, 128, 127, 142, 99, 112, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 33, 6, 0, 0, 0, 0, 32, 248, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 12, 0, 0, 56, 64, 1, 16, 0, 0, 42, 48, 1, 8, 76, 77, 84, 0, 74, 77, 84, 0, 73, 68, 84, 0, 73, 83, 84, 0, 73, 68, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 73, 83, 84, 45, 50, 73, 68, 84, 44, 77, 51, 46, 52, 46, 52, 47, 50, 54, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Asia/Thimbu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 213, 230, 21, 116, 33, 97, 77, 168, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 84, 12, 0, 0, 0, 0, 77, 88, 0, 4, 0, 0, 84, 96, 0, 10, 76, 77, 84, 0, 43, 48, 53, 51, 48, 0, 43, 48, 54, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Thimphu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 213, 230, 21, 116, 33, 97, 77, 168, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 84, 12, 0, 0, 0, 0, 77, 88, 0, 4, 0, 0, 84, 96, 0, 10, 76, 77, 84, 0, 43, 48, 53, 51, 48, 0, 43, 48, 54, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Tokyo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 215, 62, 30, 144, 215, 236, 22, 128, 216, 249, 22, 144, 217, 203, 248, 128, 219, 7, 29, 16, 219, 171, 218, 128, 220, 230, 255, 16, 221, 139, 188, 128, 3, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 131, 3, 0, 0, 0, 0, 140, 160, 1, 4, 0, 0, 126, 144, 0, 8, 0, 0, 126, 144, 0, 8, 76, 77, 84, 0, 74, 68, 84, 0, 74, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 1, 10, 74, 83, 84, 45, 57, 10},
+
+ "zoneinfo/Asia/Tomsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 161, 229, 78, 217, 181, 163, 225, 32, 21, 39, 111, 144, 22, 24, 164, 0, 23, 8, 163, 16, 23, 249, 215, 128, 24, 233, 214, 144, 25, 219, 11, 0, 26, 204, 91, 144, 27, 188, 104, 176, 28, 172, 89, 176, 29, 156, 74, 176, 30, 140, 59, 176, 31, 124, 44, 176, 32, 108, 29, 176, 33, 92, 14, 176, 34, 75, 255, 176, 35, 59, 240, 176, 36, 43, 225, 176, 37, 27, 210, 176, 38, 11, 195, 176, 39, 4, 239, 48, 39, 244, 224, 48, 40, 228, 223, 64, 41, 120, 135, 64, 41, 212, 194, 48, 42, 196, 179, 48, 43, 180, 164, 48, 44, 164, 149, 48, 45, 148, 134, 48, 46, 132, 119, 48, 47, 116, 104, 48, 48, 100, 89, 48, 49, 93, 132, 176, 50, 114, 95, 176, 51, 61, 102, 176, 52, 82, 65, 176, 53, 29, 72, 176, 54, 50, 35, 176, 54, 253, 42, 176, 56, 27, 64, 48, 56, 221, 12, 176, 57, 251, 34, 48, 58, 188, 238, 176, 59, 219, 4, 48, 60, 166, 11, 48, 60, 206, 233, 176, 61, 186, 244, 64, 62, 133, 251, 64, 63, 154, 214, 64, 64, 101, 221, 64, 65, 131, 242, 192, 66, 69, 191, 64, 67, 99, 212, 192, 68, 37, 161, 64, 69, 67, 182, 192, 70, 5, 131, 64, 71, 35, 152, 192, 71, 238, 159, 192, 73, 3, 122, 192, 73, 206, 129, 192, 74, 227, 92, 192, 75, 174, 99, 192, 76, 204, 121, 64, 77, 142, 69, 192, 84, 75, 243, 48, 87, 73, 248, 192, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 8, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 4, 0, 0, 79, 167, 0, 0, 0, 0, 84, 96, 0, 4, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 0, 12, 0, 0, 98, 112, 0, 12, 0, 0, 112, 128, 1, 8, 0, 0, 98, 112, 1, 12, 0, 0, 84, 96, 0, 4, 0, 0, 98, 112, 1, 12, 0, 0, 98, 112, 0, 12, 76, 77, 84, 0, 43, 48, 54, 0, 43, 48, 56, 0, 43, 48, 55, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Ujung_Pandang": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 21, 128, 0, 0, 0, 161, 242, 93, 144, 186, 22, 213, 144, 203, 136, 29, 128, 210, 86, 238, 112, 0, 1, 2, 3, 4, 0, 0, 111, 240, 0, 0, 0, 0, 111, 240, 0, 4, 0, 0, 112, 128, 0, 8, 0, 0, 126, 144, 0, 12, 0, 0, 112, 128, 0, 16, 76, 77, 84, 0, 77, 77, 84, 0, 43, 48, 56, 0, 43, 48, 57, 0, 87, 73, 84, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87, 73, 84, 65, 45, 56, 10},
+
+ "zoneinfo/Asia/Ulaanbaatar": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 134, 211, 238, 76, 15, 11, 220, 144, 24, 233, 200, 128, 25, 218, 252, 240, 26, 204, 77, 128, 27, 188, 48, 112, 28, 172, 47, 128, 29, 156, 18, 112, 30, 140, 17, 128, 31, 123, 244, 112, 32, 107, 243, 128, 33, 91, 214, 112, 34, 75, 213, 128, 35, 59, 184, 112, 36, 43, 183, 128, 37, 27, 154, 112, 38, 11, 153, 128, 39, 4, 182, 240, 39, 244, 182, 0, 40, 228, 152, 240, 41, 212, 152, 0, 42, 196, 122, 240, 43, 180, 122, 0, 44, 164, 92, 240, 45, 148, 92, 0, 46, 132, 62, 240, 47, 116, 62, 0, 48, 100, 32, 240, 49, 93, 90, 128, 50, 77, 61, 112, 51, 61, 60, 128, 52, 45, 31, 112, 53, 29, 30, 128, 54, 13, 1, 112, 58, 233, 179, 160, 59, 180, 172, 144, 60, 164, 171, 160, 61, 148, 142, 144, 62, 132, 141, 160, 63, 116, 112, 144, 64, 100, 111, 160, 65, 84, 82, 144, 66, 68, 81, 160, 67, 52, 52, 144, 68, 36, 51, 160, 69, 29, 81, 16, 85, 21, 154, 160, 86, 5, 97, 112, 86, 245, 124, 160, 87, 229, 67, 112, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 0, 0, 100, 52, 0, 0, 0, 0, 98, 112, 0, 4, 0, 0, 126, 144, 1, 8, 0, 0, 112, 128, 0, 12, 76, 77, 84, 0, 43, 48, 55, 0, 43, 48, 57, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Ulan_Bator": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 134, 211, 238, 76, 15, 11, 220, 144, 24, 233, 200, 128, 25, 218, 252, 240, 26, 204, 77, 128, 27, 188, 48, 112, 28, 172, 47, 128, 29, 156, 18, 112, 30, 140, 17, 128, 31, 123, 244, 112, 32, 107, 243, 128, 33, 91, 214, 112, 34, 75, 213, 128, 35, 59, 184, 112, 36, 43, 183, 128, 37, 27, 154, 112, 38, 11, 153, 128, 39, 4, 182, 240, 39, 244, 182, 0, 40, 228, 152, 240, 41, 212, 152, 0, 42, 196, 122, 240, 43, 180, 122, 0, 44, 164, 92, 240, 45, 148, 92, 0, 46, 132, 62, 240, 47, 116, 62, 0, 48, 100, 32, 240, 49, 93, 90, 128, 50, 77, 61, 112, 51, 61, 60, 128, 52, 45, 31, 112, 53, 29, 30, 128, 54, 13, 1, 112, 58, 233, 179, 160, 59, 180, 172, 144, 60, 164, 171, 160, 61, 148, 142, 144, 62, 132, 141, 160, 63, 116, 112, 144, 64, 100, 111, 160, 65, 84, 82, 144, 66, 68, 81, 160, 67, 52, 52, 144, 68, 36, 51, 160, 69, 29, 81, 16, 85, 21, 154, 160, 86, 5, 97, 112, 86, 245, 124, 160, 87, 229, 67, 112, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 0, 0, 100, 52, 0, 0, 0, 0, 98, 112, 0, 4, 0, 0, 126, 144, 1, 8, 0, 0, 112, 128, 0, 12, 76, 77, 84, 0, 43, 48, 55, 0, 43, 48, 57, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Asia/Urumqi": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 176, 254, 186, 100, 127, 255, 255, 255, 0, 1, 1, 0, 0, 82, 28, 0, 0, 0, 0, 84, 96, 0, 4, 76, 77, 84, 0, 43, 48, 54, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Asia/Ust-Nera": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 12, 0, 0, 0, 24, 128, 0, 0, 0, 161, 219, 221, 186, 181, 163, 197, 0, 21, 39, 83, 112, 22, 24, 107, 192, 23, 8, 106, 208, 23, 249, 159, 64, 24, 233, 158, 80, 25, 218, 210, 192, 26, 204, 35, 80, 27, 188, 48, 112, 28, 172, 33, 112, 29, 156, 18, 112, 30, 140, 3, 112, 31, 123, 244, 112, 32, 107, 229, 112, 33, 91, 214, 112, 34, 75, 199, 112, 35, 59, 184, 112, 36, 43, 169, 112, 37, 27, 154, 112, 38, 11, 139, 112, 39, 4, 182, 240, 39, 244, 167, 240, 40, 228, 167, 0, 41, 120, 79, 0, 41, 212, 137, 240, 42, 196, 122, 240, 43, 180, 107, 240, 44, 164, 92, 240, 45, 148, 77, 240, 46, 132, 62, 240, 47, 116, 47, 240, 48, 100, 32, 240, 49, 93, 76, 112, 50, 114, 39, 112, 51, 61, 46, 112, 52, 82, 9, 112, 53, 29, 16, 112, 54, 49, 235, 112, 54, 252, 242, 112, 56, 27, 7, 240, 56, 220, 212, 112, 57, 250, 233, 240, 58, 188, 182, 112, 59, 218, 203, 240, 60, 165, 210, 240, 61, 186, 173, 240, 62, 133, 180, 240, 63, 154, 143, 240, 64, 101, 150, 240, 65, 131, 172, 112, 66, 69, 120, 240, 67, 99, 142, 112, 68, 37, 90, 240, 69, 67, 112, 112, 70, 5, 60, 240, 71, 35, 82, 112, 71, 238, 89, 112, 73, 3, 52, 112, 73, 206, 59, 112, 74, 227, 22, 112, 75, 174, 29, 112, 76, 204, 50, 240, 77, 141, 255, 112, 78, 109, 244, 64, 84, 75, 186, 240, 127, 255, 255, 255, 0, 1, 2, 4, 3, 4, 3, 4, 3, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 9, 5, 8, 8, 0, 0, 134, 70, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 126, 144, 0, 8, 0, 0, 154, 176, 0, 12, 0, 0, 168, 192, 1, 16, 0, 0, 154, 176, 0, 12, 0, 0, 168, 192, 1, 16, 0, 0, 154, 176, 1, 12, 0, 0, 140, 160, 0, 20, 0, 0, 168, 192, 0, 16, 0, 0, 168, 192, 1, 16, 0, 0, 140, 160, 0, 20, 76, 77, 84, 0, 43, 48, 56, 0, 43, 48, 57, 0, 43, 49, 49, 0, 43, 49, 50, 0, 43, 49, 48, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Asia/Vientiane": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 162, 106, 103, 196, 127, 255, 255, 255, 1, 2, 2, 0, 0, 94, 60, 0, 0, 0, 0, 94, 60, 0, 4, 0, 0, 98, 112, 0, 8, 76, 77, 84, 0, 66, 77, 84, 0, 43, 48, 55, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Asia/Vladivostok": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 167, 89, 71, 93, 181, 163, 182, 240, 21, 39, 69, 96, 22, 24, 121, 208, 23, 8, 120, 224, 23, 249, 173, 80, 24, 233, 172, 96, 25, 218, 224, 208, 26, 204, 49, 96, 27, 188, 62, 128, 28, 172, 47, 128, 29, 156, 32, 128, 30, 140, 17, 128, 31, 124, 2, 128, 32, 107, 243, 128, 33, 91, 228, 128, 34, 75, 213, 128, 35, 59, 198, 128, 36, 43, 183, 128, 37, 27, 168, 128, 38, 11, 153, 128, 39, 4, 197, 0, 39, 244, 182, 0, 40, 228, 181, 16, 41, 120, 93, 16, 41, 212, 152, 0, 42, 196, 137, 0, 43, 180, 122, 0, 44, 164, 107, 0, 45, 148, 92, 0, 46, 132, 77, 0, 47, 116, 62, 0, 48, 100, 47, 0, 49, 93, 90, 128, 50, 114, 53, 128, 51, 61, 60, 128, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 250, 248, 0, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 37, 105, 0, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 238, 103, 128, 73, 3, 66, 128, 73, 206, 73, 128, 74, 227, 36, 128, 75, 174, 43, 128, 76, 204, 65, 0, 77, 142, 13, 128, 84, 75, 186, 240, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 4, 4, 0, 0, 123, 163, 0, 0, 0, 0, 126, 144, 0, 4, 0, 0, 154, 176, 1, 8, 0, 0, 140, 160, 0, 12, 0, 0, 140, 160, 0, 12, 0, 0, 154, 176, 1, 8, 0, 0, 140, 160, 1, 12, 0, 0, 126, 144, 0, 4, 0, 0, 154, 176, 0, 8, 0, 0, 154, 176, 1, 8, 0, 0, 140, 160, 0, 12, 76, 77, 84, 0, 43, 48, 57, 0, 43, 49, 49, 0, 43, 49, 48, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Asia/Yakutsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 11, 0, 0, 0, 16, 128, 0, 0, 0, 161, 219, 234, 94, 181, 163, 197, 0, 21, 39, 83, 112, 22, 24, 135, 224, 23, 8, 134, 240, 23, 249, 187, 96, 24, 233, 186, 112, 25, 218, 238, 224, 26, 204, 63, 112, 27, 188, 76, 144, 28, 172, 61, 144, 29, 156, 46, 144, 30, 140, 31, 144, 31, 124, 16, 144, 32, 108, 1, 144, 33, 91, 242, 144, 34, 75, 227, 144, 35, 59, 212, 144, 36, 43, 197, 144, 37, 27, 182, 144, 38, 11, 167, 144, 39, 4, 211, 16, 39, 244, 196, 16, 40, 228, 195, 32, 41, 120, 107, 32, 41, 212, 166, 16, 42, 196, 151, 16, 43, 180, 136, 16, 44, 164, 121, 16, 45, 148, 106, 16, 46, 132, 91, 16, 47, 116, 76, 16, 48, 100, 61, 16, 49, 93, 104, 144, 50, 114, 67, 144, 51, 61, 74, 144, 52, 82, 37, 144, 53, 29, 44, 144, 54, 50, 7, 144, 54, 253, 14, 144, 56, 27, 36, 16, 56, 220, 240, 144, 57, 251, 6, 16, 58, 188, 210, 144, 59, 218, 232, 16, 60, 165, 239, 16, 61, 186, 202, 16, 62, 133, 209, 16, 63, 154, 172, 16, 64, 101, 179, 16, 65, 131, 200, 144, 66, 69, 149, 16, 67, 99, 170, 144, 68, 37, 119, 16, 69, 67, 140, 144, 70, 5, 89, 16, 71, 35, 110, 144, 71, 238, 117, 144, 73, 3, 80, 144, 73, 206, 87, 144, 74, 227, 50, 144, 75, 174, 57, 144, 76, 204, 79, 16, 77, 142, 27, 144, 84, 75, 201, 0, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 4, 4, 0, 0, 121, 162, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 0, 12, 0, 0, 126, 144, 0, 12, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 4, 0, 0, 140, 160, 0, 8, 0, 0, 140, 160, 1, 8, 0, 0, 126, 144, 0, 12, 76, 77, 84, 0, 43, 48, 56, 0, 43, 49, 48, 0, 43, 48, 57, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 57, 62, 45, 57, 10},
+
+ "zoneinfo/Asia/Yangon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 18, 128, 0, 0, 0, 161, 242, 115, 81, 203, 242, 252, 24, 209, 154, 103, 240, 127, 255, 255, 255, 1, 2, 3, 2, 2, 0, 0, 90, 47, 0, 0, 0, 0, 90, 47, 0, 4, 0, 0, 91, 104, 0, 8, 0, 0, 126, 144, 0, 14, 0, 0, 91, 104, 0, 8, 76, 77, 84, 0, 82, 77, 84, 0, 43, 48, 54, 51, 48, 0, 43, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 51, 48, 62, 45, 54, 58, 51, 48, 10},
+
+ "zoneinfo/Asia/Yekaterinburg": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 12, 0, 0, 0, 20, 128, 0, 0, 0, 155, 95, 9, 39, 161, 18, 177, 255, 181, 163, 253, 64, 21, 39, 139, 176, 22, 24, 192, 32, 23, 8, 191, 48, 23, 249, 243, 160, 24, 233, 242, 176, 25, 219, 39, 32, 26, 204, 119, 176, 27, 188, 132, 208, 28, 172, 117, 208, 29, 156, 102, 208, 30, 140, 87, 208, 31, 124, 72, 208, 32, 108, 57, 208, 33, 92, 42, 208, 34, 76, 27, 208, 35, 60, 12, 208, 36, 43, 253, 208, 37, 27, 238, 208, 38, 11, 223, 208, 39, 5, 11, 80, 39, 244, 252, 80, 40, 228, 251, 96, 41, 120, 163, 96, 41, 212, 222, 80, 42, 196, 207, 80, 43, 180, 192, 80, 44, 164, 177, 80, 45, 148, 162, 80, 46, 132, 147, 80, 47, 116, 132, 80, 48, 100, 117, 80, 49, 93, 160, 208, 50, 114, 123, 208, 51, 61, 130, 208, 52, 82, 93, 208, 53, 29, 100, 208, 54, 50, 63, 208, 54, 253, 70, 208, 56, 27, 92, 80, 56, 221, 40, 208, 57, 251, 62, 80, 58, 189, 10, 208, 59, 219, 32, 80, 60, 166, 39, 80, 61, 187, 2, 80, 62, 134, 9, 80, 63, 154, 228, 80, 64, 101, 235, 80, 65, 132, 0, 208, 66, 69, 205, 80, 67, 99, 226, 208, 68, 37, 175, 80, 69, 67, 196, 208, 70, 5, 145, 80, 71, 35, 166, 208, 71, 238, 173, 208, 73, 3, 136, 208, 73, 206, 143, 208, 74, 227, 106, 208, 75, 174, 113, 208, 76, 204, 135, 80, 77, 142, 83, 208, 84, 76, 1, 64, 127, 255, 255, 255, 0, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 9, 5, 5, 0, 0, 56, 217, 0, 0, 0, 0, 52, 193, 0, 4, 0, 0, 56, 64, 0, 8, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 16, 0, 0, 70, 80, 0, 16, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 1, 16, 0, 0, 56, 64, 0, 8, 0, 0, 84, 96, 0, 12, 0, 0, 84, 96, 1, 12, 0, 0, 70, 80, 0, 16, 76, 77, 84, 0, 80, 77, 84, 0, 43, 48, 52, 0, 43, 48, 54, 0, 43, 48, 53, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Asia/Yerevan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 10, 0, 0, 0, 16, 128, 0, 0, 0, 170, 25, 154, 72, 231, 218, 12, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 27, 252, 224, 38, 11, 237, 224, 39, 5, 25, 96, 39, 245, 10, 96, 40, 229, 9, 112, 41, 212, 250, 112, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 50, 201, 112, 192, 51, 61, 144, 224, 52, 82, 107, 224, 53, 29, 114, 224, 54, 50, 77, 224, 54, 253, 84, 224, 56, 27, 106, 96, 56, 221, 54, 224, 57, 251, 76, 96, 58, 189, 24, 224, 59, 219, 46, 96, 60, 166, 53, 96, 61, 187, 16, 96, 62, 134, 23, 96, 63, 154, 242, 96, 64, 101, 249, 96, 65, 132, 14, 224, 66, 69, 219, 96, 67, 99, 240, 224, 68, 37, 189, 96, 69, 67, 210, 224, 70, 5, 159, 96, 71, 35, 180, 224, 71, 238, 187, 224, 73, 3, 150, 224, 73, 206, 157, 224, 74, 227, 120, 224, 75, 174, 127, 224, 76, 204, 149, 96, 77, 30, 54, 64, 77, 142, 97, 224, 78, 172, 119, 96, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 6, 7, 6, 7, 6, 4, 3, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 3, 5, 4, 4, 0, 0, 41, 184, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 0, 0, 56, 64, 0, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 1, 12, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 52, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Atlantic/Azores": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 12, 0, 0, 0, 24, 128, 0, 0, 0, 146, 230, 169, 88, 155, 75, 137, 144, 155, 254, 227, 160, 156, 157, 9, 144, 157, 201, 159, 144, 158, 127, 142, 144, 159, 170, 211, 16, 160, 95, 112, 144, 161, 140, 6, 144, 162, 65, 245, 144, 163, 110, 139, 144, 164, 35, 41, 16, 165, 79, 191, 16, 170, 6, 11, 144, 170, 244, 171, 16, 173, 201, 196, 16, 174, 167, 64, 16, 175, 160, 107, 144, 176, 135, 34, 16, 177, 137, 136, 16, 178, 112, 62, 144, 179, 114, 164, 144, 180, 80, 32, 144, 183, 50, 104, 144, 184, 15, 228, 144, 184, 255, 213, 144, 185, 239, 198, 144, 188, 200, 212, 16, 189, 184, 197, 16, 190, 159, 123, 144, 191, 152, 167, 16, 192, 155, 13, 16, 193, 120, 137, 16, 194, 104, 122, 16, 195, 88, 107, 16, 196, 63, 33, 144, 197, 56, 77, 16, 198, 58, 179, 16, 199, 88, 200, 144, 199, 217, 251, 144, 201, 1, 75, 144, 201, 241, 60, 144, 202, 226, 127, 16, 203, 181, 111, 16, 203, 236, 192, 0, 204, 128, 104, 0, 204, 220, 191, 16, 205, 149, 81, 16, 205, 195, 103, 128, 206, 114, 191, 0, 206, 197, 219, 144, 207, 117, 51, 16, 207, 172, 132, 0, 208, 82, 161, 0, 208, 165, 189, 144, 209, 85, 21, 16, 209, 140, 102, 0, 210, 50, 131, 0, 210, 133, 159, 144, 211, 89, 225, 16, 212, 73, 210, 16, 213, 57, 237, 64, 214, 41, 222, 64, 215, 25, 207, 64, 216, 9, 192, 64, 216, 249, 177, 64, 217, 233, 162, 64, 220, 185, 117, 64, 221, 178, 160, 192, 222, 162, 145, 192, 223, 146, 130, 192, 224, 130, 115, 192, 225, 114, 100, 192, 226, 98, 85, 192, 227, 82, 70, 192, 228, 66, 55, 192, 229, 50, 40, 192, 230, 34, 25, 192, 231, 27, 69, 64, 232, 11, 54, 64, 232, 251, 39, 64, 233, 235, 24, 64, 234, 219, 9, 64, 235, 202, 250, 64, 236, 186, 235, 64, 237, 170, 220, 64, 238, 154, 205, 64, 239, 138, 190, 64, 240, 122, 175, 64, 241, 106, 160, 64, 242, 99, 203, 192, 243, 83, 188, 192, 244, 67, 173, 192, 245, 51, 158, 192, 246, 35, 143, 192, 247, 19, 128, 192, 248, 3, 113, 192, 248, 243, 98, 192, 13, 155, 41, 16, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 38, 160, 19, 68, 9, 144, 20, 52, 8, 160, 21, 35, 249, 160, 22, 19, 234, 160, 23, 3, 219, 160, 23, 243, 204, 160, 24, 227, 203, 176, 25, 211, 174, 160, 26, 195, 159, 160, 27, 188, 203, 32, 28, 172, 188, 32, 29, 156, 173, 32, 30, 140, 158, 32, 31, 124, 143, 32, 32, 108, 128, 32, 33, 92, 113, 32, 34, 76, 98, 32, 35, 60, 83, 32, 36, 44, 68, 32, 37, 28, 53, 32, 38, 12, 38, 32, 39, 5, 81, 160, 39, 245, 66, 160, 40, 229, 51, 160, 41, 213, 36, 160, 42, 197, 21, 160, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 127, 255, 255, 255, 1, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 4, 5, 4, 6, 4, 5, 4, 6, 4, 5, 4, 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 8, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 9, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 11, 255, 255, 231, 240, 0, 0, 255, 255, 229, 40, 0, 4, 255, 255, 241, 240, 1, 8, 255, 255, 227, 224, 0, 12, 255, 255, 241, 240, 1, 8, 255, 255, 227, 224, 0, 12, 0, 0, 0, 0, 1, 16, 255, 255, 241, 240, 0, 8, 255, 255, 241, 240, 0, 8, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 1, 16, 255, 255, 241, 240, 0, 8, 76, 77, 84, 0, 72, 77, 84, 0, 45, 48, 49, 0, 45, 48, 50, 0, 43, 48, 48, 0, 87, 69, 84, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 60, 45, 48, 49, 62, 49, 60, 43, 48, 48, 62, 44, 77, 51, 46, 53, 46, 48, 47, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 49, 10},
+
+ "zoneinfo/Atlantic/Bermuda": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 180, 195, 29, 230, 8, 32, 179, 96, 9, 16, 150, 80, 10, 0, 149, 96, 10, 240, 120, 80, 11, 224, 119, 96, 12, 217, 148, 208, 13, 192, 89, 96, 14, 185, 118, 208, 15, 169, 117, 224, 16, 153, 88, 208, 17, 137, 87, 224, 18, 121, 58, 208, 19, 105, 57, 224, 20, 89, 28, 208, 21, 73, 27, 224, 22, 56, 254, 208, 23, 40, 253, 224, 24, 34, 27, 80, 25, 8, 223, 224, 26, 1, 253, 80, 26, 241, 252, 96, 27, 225, 223, 80, 28, 209, 222, 96, 29, 193, 193, 80, 30, 177, 192, 96, 31, 161, 163, 80, 32, 117, 242, 224, 33, 129, 133, 80, 34, 85, 212, 224, 35, 106, 161, 208, 36, 53, 182, 224, 37, 74, 131, 208, 38, 21, 152, 224, 39, 42, 101, 208, 39, 254, 181, 96, 41, 10, 71, 208, 41, 222, 151, 96, 42, 234, 41, 208, 43, 190, 121, 96, 44, 211, 70, 80, 45, 158, 91, 96, 46, 179, 40, 80, 47, 126, 61, 96, 48, 147, 10, 80, 49, 103, 89, 224, 50, 114, 236, 80, 51, 71, 59, 224, 52, 82, 206, 80, 53, 39, 29, 224, 54, 50, 176, 80, 55, 6, 255, 224, 56, 27, 204, 208, 56, 230, 225, 224, 57, 251, 174, 208, 58, 198, 195, 224, 59, 219, 144, 208, 60, 175, 224, 96, 61, 187, 114, 208, 62, 143, 194, 96, 63, 155, 84, 208, 64, 111, 164, 96, 65, 132, 113, 80, 66, 79, 134, 96, 67, 100, 83, 80, 68, 47, 104, 96, 69, 68, 53, 80, 69, 243, 154, 224, 71, 45, 81, 208, 71, 211, 124, 224, 73, 13, 51, 208, 73, 179, 94, 224, 74, 237, 21, 208, 75, 156, 123, 96, 76, 214, 50, 80, 77, 124, 93, 96, 78, 182, 20, 80, 79, 92, 63, 96, 80, 149, 246, 80, 81, 60, 33, 96, 82, 117, 216, 80, 83, 28, 3, 96, 84, 85, 186, 80, 84, 251, 229, 96, 86, 53, 156, 80, 86, 229, 1, 224, 88, 30, 184, 208, 88, 196, 227, 224, 89, 254, 154, 208, 90, 164, 197, 224, 91, 222, 124, 208, 92, 132, 167, 224, 93, 190, 94, 208, 94, 100, 137, 224, 95, 158, 64, 208, 96, 77, 166, 96, 97, 135, 93, 80, 98, 45, 136, 96, 99, 103, 63, 80, 100, 13, 106, 96, 101, 71, 33, 80, 101, 237, 76, 96, 103, 39, 3, 80, 103, 205, 46, 96, 105, 6, 229, 80, 105, 173, 16, 96, 106, 230, 199, 80, 107, 150, 44, 224, 108, 207, 227, 208, 109, 118, 14, 224, 110, 175, 197, 208, 111, 85, 240, 224, 112, 143, 167, 208, 113, 53, 210, 224, 114, 111, 137, 208, 115, 21, 180, 224, 116, 79, 107, 208, 116, 254, 209, 96, 118, 56, 136, 80, 118, 222, 179, 96, 120, 24, 106, 80, 120, 190, 149, 96, 121, 248, 76, 80, 122, 158, 119, 96, 123, 216, 46, 80, 124, 126, 89, 96, 125, 184, 16, 80, 126, 94, 59, 96, 127, 151, 242, 80, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 255, 255, 195, 58, 0, 0, 255, 255, 199, 192, 0, 4, 255, 255, 213, 208, 1, 8, 76, 77, 84, 0, 65, 83, 84, 0, 65, 68, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 83, 84, 52, 65, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Atlantic/Canary": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 6, 0, 0, 0, 17, 128, 0, 0, 0, 166, 4, 92, 240, 212, 65, 247, 32, 19, 77, 54, 0, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 255, 255, 241, 144, 0, 0, 255, 255, 241, 240, 0, 4, 0, 0, 0, 0, 0, 8, 0, 0, 14, 16, 1, 12, 0, 0, 0, 0, 0, 8, 0, 0, 14, 16, 1, 12, 76, 77, 84, 0, 45, 48, 49, 0, 87, 69, 84, 0, 87, 69, 83, 84, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Atlantic/Cape_Verde": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 137, 127, 81, 140, 204, 149, 156, 32, 210, 116, 124, 16, 11, 23, 247, 64, 127, 255, 255, 255, 0, 1, 2, 1, 3, 3, 255, 255, 233, 244, 0, 0, 255, 255, 227, 224, 0, 4, 255, 255, 241, 240, 1, 8, 255, 255, 241, 240, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 49, 62, 49, 10},
+
+ "zoneinfo/Atlantic/Faeroe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 4, 0, 0, 0, 13, 128, 0, 0, 0, 139, 109, 164, 88, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 255, 255, 249, 168, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 87, 69, 84, 0, 87, 69, 83, 84, 0, 0, 0, 1, 1, 0, 0, 1, 1, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Atlantic/Faroe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 4, 0, 0, 0, 13, 128, 0, 0, 0, 139, 109, 164, 88, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 255, 255, 249, 168, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 87, 69, 84, 0, 87, 69, 83, 84, 0, 0, 0, 1, 1, 0, 0, 1, 1, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Atlantic/Jan_Mayen": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 39, 227, 0, 155, 212, 123, 96, 200, 183, 77, 96, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 210, 98, 7, 16, 235, 175, 32, 144, 236, 168, 76, 16, 237, 152, 61, 16, 238, 136, 46, 16, 239, 120, 31, 16, 240, 104, 16, 16, 241, 88, 1, 16, 242, 71, 242, 16, 243, 55, 227, 16, 244, 39, 212, 16, 245, 23, 197, 16, 246, 16, 240, 144, 247, 47, 6, 16, 247, 240, 210, 144, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 10, 20, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Atlantic/Madeira": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 0, 12, 0, 0, 0, 29, 128, 0, 0, 0, 146, 230, 158, 88, 155, 75, 123, 128, 155, 254, 213, 144, 156, 156, 251, 128, 157, 201, 145, 128, 158, 127, 128, 128, 159, 170, 197, 0, 160, 95, 98, 128, 161, 139, 248, 128, 162, 65, 231, 128, 163, 110, 125, 128, 164, 35, 27, 0, 165, 79, 177, 0, 170, 5, 253, 128, 170, 244, 157, 0, 173, 201, 182, 0, 174, 167, 50, 0, 175, 160, 93, 128, 176, 135, 20, 0, 177, 137, 122, 0, 178, 112, 48, 128, 179, 114, 150, 128, 180, 80, 18, 128, 183, 50, 90, 128, 184, 15, 214, 128, 184, 255, 199, 128, 185, 239, 184, 128, 188, 200, 198, 0, 189, 184, 183, 0, 190, 159, 109, 128, 191, 152, 153, 0, 192, 154, 255, 0, 193, 120, 123, 0, 194, 104, 108, 0, 195, 88, 93, 0, 196, 63, 19, 128, 197, 56, 63, 0, 198, 58, 165, 0, 199, 88, 186, 128, 199, 217, 237, 128, 201, 1, 61, 128, 201, 241, 46, 128, 202, 226, 113, 0, 203, 181, 97, 0, 203, 236, 177, 240, 204, 128, 89, 240, 204, 220, 177, 0, 205, 149, 67, 0, 205, 195, 89, 112, 206, 114, 176, 240, 206, 197, 205, 128, 207, 117, 37, 0, 207, 172, 117, 240, 208, 82, 146, 240, 208, 165, 175, 128, 209, 85, 7, 0, 209, 140, 87, 240, 210, 50, 116, 240, 210, 133, 145, 128, 211, 89, 211, 0, 212, 73, 196, 0, 213, 57, 223, 48, 214, 41, 208, 48, 215, 25, 193, 48, 216, 9, 178, 48, 216, 249, 163, 48, 217, 233, 148, 48, 220, 185, 103, 48, 221, 178, 146, 176, 222, 162, 131, 176, 223, 146, 116, 176, 224, 130, 101, 176, 225, 114, 86, 176, 226, 98, 71, 176, 227, 82, 56, 176, 228, 66, 41, 176, 229, 50, 26, 176, 230, 34, 11, 176, 231, 27, 55, 48, 232, 11, 40, 48, 232, 251, 25, 48, 233, 235, 10, 48, 234, 218, 251, 48, 235, 202, 236, 48, 236, 186, 221, 48, 237, 170, 206, 48, 238, 154, 191, 48, 239, 138, 176, 48, 240, 122, 161, 48, 241, 106, 146, 48, 242, 99, 189, 176, 243, 83, 174, 176, 244, 67, 159, 176, 245, 51, 144, 176, 246, 35, 129, 176, 247, 19, 114, 176, 248, 3, 99, 176, 248, 243, 84, 176, 13, 155, 27, 0, 14, 139, 12, 0, 15, 132, 55, 128, 16, 116, 40, 128, 17, 100, 25, 128, 18, 84, 24, 144, 19, 67, 251, 128, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 189, 160, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 4, 5, 4, 6, 4, 5, 4, 6, 4, 5, 4, 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 9, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 255, 255, 240, 40, 0, 0, 255, 255, 240, 40, 0, 4, 0, 0, 0, 0, 1, 8, 255, 255, 241, 240, 0, 12, 0, 0, 0, 0, 1, 8, 255, 255, 241, 240, 0, 12, 0, 0, 14, 16, 1, 16, 0, 0, 14, 16, 1, 20, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 25, 0, 0, 14, 16, 1, 20, 76, 77, 84, 0, 70, 77, 84, 0, 43, 48, 48, 0, 45, 48, 49, 0, 43, 48, 49, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Atlantic/Reykjavik": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 139, 96, 131, 160, 156, 145, 30, 0, 157, 209, 136, 144, 158, 114, 81, 128, 159, 213, 3, 16, 160, 83, 133, 0, 161, 182, 54, 144, 164, 60, 39, 128, 164, 185, 116, 16, 198, 77, 26, 0, 199, 61, 39, 32, 199, 218, 23, 176, 201, 38, 67, 160, 201, 195, 38, 32, 203, 6, 37, 160, 203, 172, 66, 160, 204, 220, 205, 32, 205, 140, 36, 160, 206, 188, 175, 32, 207, 108, 6, 160, 208, 156, 145, 32, 209, 75, 232, 160, 210, 133, 173, 160, 211, 43, 202, 160, 212, 101, 143, 160, 213, 57, 209, 32, 214, 69, 113, 160, 215, 25, 179, 32, 216, 37, 83, 160, 216, 249, 149, 32, 218, 14, 112, 32, 218, 217, 119, 32, 219, 229, 23, 160, 220, 185, 89, 32, 221, 206, 52, 32, 222, 162, 117, 160, 223, 174, 22, 32, 224, 130, 87, 160, 225, 141, 248, 32, 226, 98, 57, 160, 227, 109, 218, 32, 228, 66, 27, 160, 229, 77, 188, 32, 230, 33, 253, 160, 231, 54, 216, 160, 232, 11, 26, 32, 233, 22, 186, 160, 233, 234, 252, 32, 234, 246, 156, 160, 235, 202, 222, 32, 236, 214, 126, 160, 237, 170, 192, 32, 238, 182, 96, 160, 239, 138, 162, 32, 240, 150, 66, 160, 241, 106, 132, 32, 242, 127, 95, 32, 243, 83, 160, 160, 244, 95, 65, 32, 245, 51, 130, 160, 246, 63, 35, 32, 247, 19, 100, 160, 248, 31, 5, 32, 248, 243, 70, 160, 249, 254, 231, 32, 250, 211, 40, 160, 251, 232, 3, 160, 252, 188, 69, 32, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 255, 255, 235, 96, 0, 0, 0, 0, 0, 0, 1, 4, 255, 255, 241, 240, 0, 8, 255, 255, 241, 240, 0, 8, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 12, 76, 77, 84, 0, 43, 48, 48, 0, 45, 48, 49, 0, 71, 77, 84, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Atlantic/South_Georgia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 255, 255, 221, 192, 0, 0, 255, 255, 227, 224, 0, 4, 76, 77, 84, 0, 45, 48, 50, 0, 0, 0, 0, 0, 10, 60, 45, 48, 50, 62, 50, 10},
+
+ "zoneinfo/Atlantic/St_Helena": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 146, 230, 146, 72, 0, 1, 255, 255, 252, 56, 0, 0, 0, 0, 0, 0, 0, 4, 76, 77, 84, 0, 71, 77, 84, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Atlantic/Stanley": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 7, 0, 0, 0, 20, 128, 0, 0, 0, 147, 68, 95, 60, 195, 79, 90, 192, 196, 54, 3, 48, 197, 47, 60, 192, 198, 21, 229, 48, 199, 24, 89, 64, 199, 255, 1, 176, 200, 248, 59, 64, 201, 222, 227, 176, 202, 216, 29, 64, 203, 190, 197, 176, 204, 183, 255, 64, 205, 54, 129, 48, 25, 17, 254, 64, 25, 211, 188, 176, 26, 241, 196, 32, 27, 170, 100, 48, 28, 209, 166, 32, 29, 138, 70, 48, 30, 168, 91, 176, 31, 106, 54, 64, 32, 136, 61, 176, 33, 74, 24, 64, 34, 104, 31, 176, 35, 41, 250, 64, 36, 72, 1, 176, 37, 9, 220, 64, 38, 49, 30, 48, 38, 233, 190, 64, 40, 17, 0, 48, 40, 210, 218, 192, 41, 240, 226, 48, 42, 178, 188, 192, 43, 208, 196, 48, 44, 146, 158, 192, 45, 176, 166, 48, 46, 114, 128, 192, 47, 144, 136, 48, 48, 82, 98, 192, 49, 121, 164, 176, 50, 59, 127, 64, 51, 89, 134, 176, 52, 27, 97, 64, 53, 57, 104, 176, 53, 251, 67, 64, 55, 25, 74, 176, 55, 219, 37, 64, 56, 249, 44, 176, 57, 187, 7, 64, 58, 217, 42, 208, 59, 145, 202, 224, 60, 194, 71, 80, 61, 113, 172, 224, 62, 162, 41, 80, 63, 90, 201, 96, 64, 130, 11, 80, 65, 58, 171, 96, 66, 97, 237, 80, 67, 26, 141, 96, 68, 65, 207, 80, 68, 250, 111, 96, 70, 33, 177, 80, 70, 218, 81, 96, 72, 10, 205, 208, 72, 195, 109, 224, 73, 234, 175, 208, 74, 163, 79, 224, 75, 202, 145, 208, 76, 131, 49, 224, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 5, 4, 5, 4, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 5, 5, 255, 255, 201, 196, 0, 0, 255, 255, 201, 196, 0, 4, 255, 255, 213, 208, 1, 8, 255, 255, 199, 192, 0, 12, 255, 255, 227, 224, 1, 16, 255, 255, 213, 208, 0, 8, 255, 255, 213, 208, 1, 8, 76, 77, 84, 0, 83, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/Australia/ACT": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 12, 137, 128, 24, 33, 100, 128, 24, 199, 129, 128, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 121, 156, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 37, 239, 234, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 42, 233, 115, 0, 43, 152, 202, 128, 44, 210, 143, 128, 45, 120, 172, 128, 46, 178, 113, 128, 47, 88, 142, 128, 48, 146, 83, 128, 49, 93, 90, 128, 50, 114, 53, 128, 51, 61, 60, 128, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 46, 163, 128, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 141, 196, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Adelaide": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 10, 128, 0, 0, 0, 156, 78, 173, 164, 156, 188, 39, 248, 203, 84, 186, 8, 203, 199, 94, 120, 204, 183, 93, 136, 205, 167, 64, 120, 206, 160, 122, 8, 207, 135, 34, 120, 3, 112, 64, 136, 4, 13, 35, 8, 5, 80, 34, 136, 5, 246, 63, 136, 7, 48, 4, 136, 7, 214, 33, 136, 9, 15, 230, 136, 9, 182, 3, 136, 10, 239, 200, 136, 11, 159, 32, 8, 12, 216, 229, 8, 13, 127, 2, 8, 14, 184, 199, 8, 15, 94, 228, 8, 16, 152, 169, 8, 17, 62, 198, 8, 18, 120, 139, 8, 19, 30, 168, 8, 20, 88, 109, 8, 20, 254, 138, 8, 22, 56, 79, 8, 22, 231, 166, 136, 24, 33, 107, 136, 24, 199, 136, 136, 26, 1, 77, 136, 26, 167, 106, 136, 27, 225, 47, 136, 28, 135, 76, 136, 29, 193, 17, 136, 30, 121, 163, 136, 31, 151, 185, 8, 32, 89, 133, 136, 33, 128, 213, 136, 34, 66, 162, 8, 35, 105, 242, 8, 36, 34, 132, 8, 37, 73, 212, 8, 38, 2, 102, 8, 39, 41, 182, 8, 39, 207, 211, 8, 41, 9, 152, 8, 41, 203, 100, 136, 42, 233, 122, 8, 43, 152, 209, 136, 44, 210, 150, 136, 45, 139, 40, 136, 46, 178, 120, 136, 47, 116, 69, 8, 48, 146, 90, 136, 49, 93, 97, 136, 50, 114, 60, 136, 51, 61, 67, 136, 52, 82, 30, 136, 53, 29, 37, 136, 54, 50, 0, 136, 54, 253, 7, 136, 56, 27, 29, 8, 56, 220, 233, 136, 57, 250, 255, 8, 58, 188, 203, 136, 59, 218, 225, 8, 60, 165, 232, 8, 61, 186, 195, 8, 62, 133, 202, 8, 63, 154, 165, 8, 64, 101, 172, 8, 65, 131, 193, 136, 66, 69, 142, 8, 67, 99, 163, 136, 68, 46, 170, 136, 69, 67, 133, 136, 70, 5, 82, 8, 71, 35, 103, 136, 71, 247, 169, 8, 72, 231, 154, 8, 73, 215, 139, 8, 74, 199, 124, 8, 75, 183, 109, 8, 76, 167, 94, 8, 77, 151, 79, 8, 78, 135, 64, 8, 79, 119, 49, 8, 80, 112, 92, 136, 81, 96, 77, 136, 82, 80, 62, 136, 83, 64, 47, 136, 84, 48, 32, 136, 85, 32, 17, 136, 86, 16, 2, 136, 86, 255, 243, 136, 87, 239, 228, 136, 88, 223, 213, 136, 89, 207, 198, 136, 90, 191, 183, 136, 91, 184, 227, 8, 92, 168, 212, 8, 93, 152, 197, 8, 94, 136, 182, 8, 95, 120, 167, 8, 96, 104, 152, 8, 97, 88, 137, 8, 98, 72, 122, 8, 99, 56, 107, 8, 100, 40, 92, 8, 101, 24, 77, 8, 102, 17, 120, 136, 103, 1, 105, 136, 103, 241, 90, 136, 104, 225, 75, 136, 105, 209, 60, 136, 106, 193, 45, 136, 107, 177, 30, 136, 108, 161, 15, 136, 109, 145, 0, 136, 110, 128, 241, 136, 111, 112, 226, 136, 112, 106, 14, 8, 113, 89, 255, 8, 114, 73, 240, 8, 115, 57, 225, 8, 116, 41, 210, 8, 117, 25, 195, 8, 118, 9, 180, 8, 118, 249, 165, 8, 119, 233, 150, 8, 120, 217, 135, 8, 121, 201, 120, 8, 122, 185, 105, 8, 123, 178, 148, 136, 124, 162, 133, 136, 125, 146, 118, 136, 126, 130, 103, 136, 127, 114, 88, 136, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 126, 144, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 65, 67, 83, 84, 0, 65, 67, 68, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 67, 83, 84, 45, 57, 58, 51, 48, 65, 67, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Brisbane": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 37, 73, 205, 0, 37, 239, 234, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 143, 120, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 10},
+
+ "zoneinfo/Australia/Broken_Hill": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 5, 0, 0, 0, 10, 128, 0, 0, 0, 156, 78, 173, 164, 156, 188, 39, 248, 203, 84, 186, 8, 203, 199, 94, 120, 204, 183, 93, 136, 205, 167, 64, 120, 206, 160, 122, 8, 207, 135, 34, 120, 3, 112, 64, 136, 4, 13, 35, 8, 5, 80, 34, 136, 5, 246, 63, 136, 7, 48, 4, 136, 7, 214, 33, 136, 9, 15, 230, 136, 9, 182, 3, 136, 10, 239, 200, 136, 11, 159, 32, 8, 12, 216, 229, 8, 13, 127, 2, 8, 14, 184, 199, 8, 15, 94, 228, 8, 16, 152, 169, 8, 17, 62, 198, 8, 18, 120, 139, 8, 19, 30, 168, 8, 20, 88, 109, 8, 20, 254, 138, 8, 22, 56, 79, 8, 23, 12, 144, 136, 24, 33, 107, 136, 24, 199, 136, 136, 26, 1, 77, 136, 26, 167, 106, 136, 27, 225, 47, 136, 28, 135, 76, 136, 29, 193, 17, 136, 30, 121, 163, 136, 31, 151, 185, 8, 32, 89, 133, 136, 33, 128, 213, 136, 34, 66, 162, 8, 35, 105, 242, 8, 36, 34, 132, 8, 37, 73, 212, 8, 37, 239, 241, 8, 39, 41, 182, 8, 39, 207, 211, 8, 41, 9, 152, 8, 41, 175, 181, 8, 42, 233, 122, 8, 43, 152, 209, 136, 44, 210, 150, 136, 45, 120, 179, 136, 46, 178, 120, 136, 47, 88, 149, 136, 48, 146, 90, 136, 49, 93, 97, 136, 50, 114, 60, 136, 51, 61, 67, 136, 52, 82, 30, 136, 53, 29, 37, 136, 54, 50, 0, 136, 54, 253, 7, 136, 56, 27, 29, 8, 56, 108, 175, 216, 56, 220, 233, 136, 57, 250, 255, 8, 58, 188, 203, 136, 59, 218, 225, 8, 60, 165, 232, 8, 61, 186, 195, 8, 62, 133, 202, 8, 63, 154, 165, 8, 64, 101, 172, 8, 65, 131, 193, 136, 66, 69, 142, 8, 67, 99, 163, 136, 68, 46, 170, 136, 69, 67, 133, 136, 70, 5, 82, 8, 71, 35, 103, 136, 71, 247, 169, 8, 72, 231, 154, 8, 73, 215, 139, 8, 74, 199, 124, 8, 75, 183, 109, 8, 76, 167, 94, 8, 77, 151, 79, 8, 78, 135, 64, 8, 79, 119, 49, 8, 80, 112, 92, 136, 81, 96, 77, 136, 82, 80, 62, 136, 83, 64, 47, 136, 84, 48, 32, 136, 85, 32, 17, 136, 86, 16, 2, 136, 86, 255, 243, 136, 87, 239, 228, 136, 88, 223, 213, 136, 89, 207, 198, 136, 90, 191, 183, 136, 91, 184, 227, 8, 92, 168, 212, 8, 93, 152, 197, 8, 94, 136, 182, 8, 95, 120, 167, 8, 96, 104, 152, 8, 97, 88, 137, 8, 98, 72, 122, 8, 99, 56, 107, 8, 100, 40, 92, 8, 101, 24, 77, 8, 102, 17, 120, 136, 103, 1, 105, 136, 103, 241, 90, 136, 104, 225, 75, 136, 105, 209, 60, 136, 106, 193, 45, 136, 107, 177, 30, 136, 108, 161, 15, 136, 109, 145, 0, 136, 110, 128, 241, 136, 111, 112, 226, 136, 112, 106, 14, 8, 113, 89, 255, 8, 114, 73, 240, 8, 115, 57, 225, 8, 116, 41, 210, 8, 117, 25, 195, 8, 118, 9, 180, 8, 118, 249, 165, 8, 119, 233, 150, 8, 120, 217, 135, 8, 121, 201, 120, 8, 122, 185, 105, 8, 123, 178, 148, 136, 124, 162, 133, 136, 125, 146, 118, 136, 126, 130, 103, 136, 127, 114, 88, 136, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 1, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 126, 144, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 65, 67, 83, 84, 0, 65, 67, 68, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 67, 83, 84, 45, 57, 58, 51, 48, 65, 67, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Canberra": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 12, 137, 128, 24, 33, 100, 128, 24, 199, 129, 128, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 121, 156, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 37, 239, 234, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 42, 233, 115, 0, 43, 152, 202, 128, 44, 210, 143, 128, 45, 120, 172, 128, 46, 178, 113, 128, 47, 88, 142, 128, 48, 146, 83, 128, 49, 93, 90, 128, 50, 114, 53, 128, 51, 61, 60, 128, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 46, 163, 128, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 141, 196, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Currie": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 155, 213, 120, 128, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 3, 79, 0, 24, 33, 100, 128, 24, 227, 49, 0, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 103, 39, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 38, 2, 95, 0, 39, 41, 175, 0, 39, 244, 182, 0, 40, 237, 225, 128, 41, 212, 152, 0, 42, 205, 195, 128, 43, 180, 122, 0, 44, 173, 165, 128, 45, 148, 92, 0, 46, 141, 135, 128, 47, 116, 62, 0, 48, 109, 105, 128, 49, 93, 90, 128, 50, 86, 134, 0, 51, 61, 60, 128, 52, 54, 104, 0, 53, 29, 30, 128, 54, 22, 74, 0, 54, 253, 0, 128, 55, 246, 44, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 191, 42, 128, 60, 165, 225, 0, 61, 159, 12, 128, 62, 133, 195, 0, 63, 126, 238, 128, 64, 101, 165, 0, 65, 94, 208, 128, 66, 69, 135, 0, 67, 62, 178, 128, 68, 46, 163, 128, 69, 30, 148, 128, 70, 5, 75, 0, 71, 7, 177, 0, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 134, 224, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 154, 176, 1, 9, 0, 0, 154, 176, 1, 9, 0, 0, 140, 160, 0, 4, 76, 77, 84, 0, 65, 69, 83, 84, 0, 65, 69, 68, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Darwin": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 10, 128, 0, 0, 0, 156, 78, 173, 164, 156, 188, 39, 248, 203, 84, 186, 8, 203, 199, 94, 120, 204, 183, 93, 136, 205, 167, 64, 120, 206, 160, 122, 8, 207, 135, 34, 120, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 126, 144, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 65, 67, 83, 84, 0, 65, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 67, 83, 84, 45, 57, 58, 51, 48, 10},
+
+ "zoneinfo/Australia/Eucla": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 5, 0, 0, 0, 16, 128, 0, 0, 0, 156, 78, 184, 48, 156, 188, 50, 132, 203, 84, 196, 148, 203, 199, 105, 4, 204, 183, 104, 20, 205, 167, 75, 4, 9, 15, 241, 20, 9, 182, 14, 20, 26, 1, 88, 20, 26, 167, 117, 20, 41, 37, 82, 20, 41, 175, 191, 148, 69, 113, 180, 148, 70, 5, 92, 148, 71, 35, 114, 20, 71, 238, 121, 20, 73, 3, 84, 20, 73, 206, 91, 20, 127, 255, 255, 255, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 4, 0, 0, 120, 208, 0, 0, 0, 0, 137, 28, 1, 4, 0, 0, 123, 12, 0, 10, 0, 0, 137, 28, 1, 4, 0, 0, 123, 12, 0, 10, 76, 77, 84, 0, 43, 48, 57, 52, 53, 0, 43, 48, 56, 52, 53, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 52, 53, 62, 45, 56, 58, 52, 53, 10},
+
+ "zoneinfo/Australia/Hobart": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 155, 213, 120, 128, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 251, 194, 141, 0, 252, 178, 126, 0, 253, 199, 89, 0, 254, 118, 176, 128, 255, 167, 59, 0, 0, 86, 146, 128, 1, 135, 29, 0, 2, 63, 175, 0, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 3, 79, 0, 24, 33, 100, 128, 24, 227, 49, 0, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 103, 39, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 38, 2, 95, 0, 39, 41, 175, 0, 39, 244, 182, 0, 40, 237, 225, 128, 41, 212, 152, 0, 42, 205, 195, 128, 43, 180, 122, 0, 44, 173, 165, 128, 45, 148, 92, 0, 46, 141, 135, 128, 47, 116, 62, 0, 48, 109, 105, 128, 49, 93, 90, 128, 50, 86, 134, 0, 51, 61, 60, 128, 52, 54, 104, 0, 53, 29, 30, 128, 54, 22, 74, 0, 54, 253, 0, 128, 55, 246, 44, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 191, 42, 128, 60, 165, 225, 0, 61, 159, 12, 128, 62, 133, 195, 0, 63, 126, 238, 128, 64, 101, 165, 0, 65, 94, 208, 128, 66, 69, 135, 0, 67, 62, 178, 128, 68, 46, 163, 128, 69, 30, 148, 128, 70, 5, 75, 0, 71, 7, 177, 0, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 138, 28, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 154, 176, 1, 9, 0, 0, 154, 176, 1, 9, 0, 0, 140, 160, 0, 4, 76, 77, 84, 0, 65, 69, 83, 84, 0, 65, 69, 68, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/LHI": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 5, 0, 0, 0, 25, 128, 0, 0, 0, 20, 254, 102, 224, 22, 56, 64, 248, 22, 231, 138, 104, 24, 33, 93, 120, 24, 199, 108, 104, 26, 1, 63, 120, 26, 167, 78, 104, 27, 225, 33, 120, 28, 135, 48, 104, 29, 193, 3, 120, 30, 121, 142, 112, 31, 151, 170, 248, 32, 89, 112, 112, 33, 128, 199, 120, 34, 66, 140, 240, 35, 105, 227, 248, 36, 34, 110, 240, 37, 73, 197, 248, 37, 239, 219, 240, 39, 41, 167, 248, 39, 207, 189, 240, 41, 9, 137, 248, 41, 175, 159, 240, 42, 233, 107, 248, 43, 152, 188, 112, 44, 210, 136, 120, 45, 120, 158, 112, 46, 178, 106, 120, 47, 88, 128, 112, 48, 146, 76, 120, 49, 93, 76, 112, 50, 114, 46, 120, 51, 61, 46, 112, 52, 82, 16, 120, 53, 29, 16, 112, 54, 49, 242, 120, 54, 252, 242, 112, 56, 27, 14, 248, 56, 220, 212, 112, 57, 167, 226, 120, 58, 188, 182, 112, 59, 218, 210, 248, 60, 165, 210, 240, 61, 186, 180, 248, 62, 133, 180, 240, 63, 154, 150, 248, 64, 101, 150, 240, 65, 131, 179, 120, 66, 69, 120, 240, 67, 99, 149, 120, 68, 46, 149, 112, 69, 67, 119, 120, 70, 5, 60, 240, 71, 35, 89, 120, 71, 247, 147, 240, 72, 231, 139, 248, 73, 215, 117, 240, 74, 199, 109, 248, 75, 183, 87, 240, 76, 167, 79, 248, 77, 151, 57, 240, 78, 135, 49, 248, 79, 119, 27, 240, 80, 112, 78, 120, 81, 96, 56, 112, 82, 80, 48, 120, 83, 64, 26, 112, 84, 48, 18, 120, 85, 31, 252, 112, 86, 15, 244, 120, 86, 255, 222, 112, 87, 239, 214, 120, 88, 223, 192, 112, 89, 207, 184, 120, 90, 191, 162, 112, 91, 184, 212, 248, 92, 168, 190, 240, 93, 152, 182, 248, 94, 136, 160, 240, 95, 120, 152, 248, 96, 104, 130, 240, 97, 88, 122, 248, 98, 72, 100, 240, 99, 56, 92, 248, 100, 40, 70, 240, 101, 24, 62, 248, 102, 17, 99, 112, 103, 1, 91, 120, 103, 241, 69, 112, 104, 225, 61, 120, 105, 209, 39, 112, 106, 193, 31, 120, 107, 177, 9, 112, 108, 161, 1, 120, 109, 144, 235, 112, 110, 128, 227, 120, 111, 112, 205, 112, 112, 105, 255, 248, 113, 89, 233, 240, 114, 73, 225, 248, 115, 57, 203, 240, 116, 41, 195, 248, 117, 25, 173, 240, 118, 9, 165, 248, 118, 249, 143, 240, 119, 233, 135, 248, 120, 217, 113, 240, 121, 201, 105, 248, 122, 185, 83, 240, 123, 178, 134, 120, 124, 162, 112, 112, 125, 146, 104, 120, 126, 130, 82, 112, 127, 114, 74, 120, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 4, 0, 0, 149, 36, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 161, 184, 1, 9, 0, 0, 147, 168, 0, 15, 0, 0, 154, 176, 1, 21, 76, 77, 84, 0, 65, 69, 83, 84, 0, 43, 49, 49, 51, 48, 0, 43, 49, 48, 51, 48, 0, 43, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 51, 48, 62, 45, 49, 48, 58, 51, 48, 60, 43, 49, 49, 62, 45, 49, 49, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Australia/Lindeman": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 37, 73, 205, 0, 37, 239, 234, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 42, 80, 104, 224, 42, 233, 115, 0, 43, 152, 202, 128, 44, 210, 143, 128, 45, 120, 172, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 2, 3, 4, 3, 4, 0, 0, 139, 172, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 10},
+
+ "zoneinfo/Australia/Lord_Howe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 5, 0, 0, 0, 25, 128, 0, 0, 0, 20, 254, 102, 224, 22, 56, 64, 248, 22, 231, 138, 104, 24, 33, 93, 120, 24, 199, 108, 104, 26, 1, 63, 120, 26, 167, 78, 104, 27, 225, 33, 120, 28, 135, 48, 104, 29, 193, 3, 120, 30, 121, 142, 112, 31, 151, 170, 248, 32, 89, 112, 112, 33, 128, 199, 120, 34, 66, 140, 240, 35, 105, 227, 248, 36, 34, 110, 240, 37, 73, 197, 248, 37, 239, 219, 240, 39, 41, 167, 248, 39, 207, 189, 240, 41, 9, 137, 248, 41, 175, 159, 240, 42, 233, 107, 248, 43, 152, 188, 112, 44, 210, 136, 120, 45, 120, 158, 112, 46, 178, 106, 120, 47, 88, 128, 112, 48, 146, 76, 120, 49, 93, 76, 112, 50, 114, 46, 120, 51, 61, 46, 112, 52, 82, 16, 120, 53, 29, 16, 112, 54, 49, 242, 120, 54, 252, 242, 112, 56, 27, 14, 248, 56, 220, 212, 112, 57, 167, 226, 120, 58, 188, 182, 112, 59, 218, 210, 248, 60, 165, 210, 240, 61, 186, 180, 248, 62, 133, 180, 240, 63, 154, 150, 248, 64, 101, 150, 240, 65, 131, 179, 120, 66, 69, 120, 240, 67, 99, 149, 120, 68, 46, 149, 112, 69, 67, 119, 120, 70, 5, 60, 240, 71, 35, 89, 120, 71, 247, 147, 240, 72, 231, 139, 248, 73, 215, 117, 240, 74, 199, 109, 248, 75, 183, 87, 240, 76, 167, 79, 248, 77, 151, 57, 240, 78, 135, 49, 248, 79, 119, 27, 240, 80, 112, 78, 120, 81, 96, 56, 112, 82, 80, 48, 120, 83, 64, 26, 112, 84, 48, 18, 120, 85, 31, 252, 112, 86, 15, 244, 120, 86, 255, 222, 112, 87, 239, 214, 120, 88, 223, 192, 112, 89, 207, 184, 120, 90, 191, 162, 112, 91, 184, 212, 248, 92, 168, 190, 240, 93, 152, 182, 248, 94, 136, 160, 240, 95, 120, 152, 248, 96, 104, 130, 240, 97, 88, 122, 248, 98, 72, 100, 240, 99, 56, 92, 248, 100, 40, 70, 240, 101, 24, 62, 248, 102, 17, 99, 112, 103, 1, 91, 120, 103, 241, 69, 112, 104, 225, 61, 120, 105, 209, 39, 112, 106, 193, 31, 120, 107, 177, 9, 112, 108, 161, 1, 120, 109, 144, 235, 112, 110, 128, 227, 120, 111, 112, 205, 112, 112, 105, 255, 248, 113, 89, 233, 240, 114, 73, 225, 248, 115, 57, 203, 240, 116, 41, 195, 248, 117, 25, 173, 240, 118, 9, 165, 248, 118, 249, 143, 240, 119, 233, 135, 248, 120, 217, 113, 240, 121, 201, 105, 248, 122, 185, 83, 240, 123, 178, 134, 120, 124, 162, 112, 112, 125, 146, 104, 120, 126, 130, 82, 112, 127, 114, 74, 120, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 4, 0, 0, 149, 36, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 161, 184, 1, 9, 0, 0, 147, 168, 0, 15, 0, 0, 154, 176, 1, 21, 76, 77, 84, 0, 65, 69, 83, 84, 0, 43, 49, 49, 51, 48, 0, 43, 49, 48, 51, 48, 0, 43, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 51, 48, 62, 45, 49, 48, 58, 51, 48, 60, 43, 49, 49, 62, 45, 49, 49, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Australia/Melbourne": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 22, 231, 159, 128, 24, 33, 100, 128, 24, 199, 129, 128, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 121, 156, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 119, 148, 0, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 38, 2, 95, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 42, 233, 115, 0, 43, 152, 202, 128, 44, 210, 143, 128, 45, 120, 172, 128, 46, 178, 113, 128, 47, 116, 62, 0, 48, 146, 83, 128, 49, 93, 90, 128, 50, 114, 53, 128, 51, 61, 60, 128, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 46, 163, 128, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 135, 232, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/NSW": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 12, 137, 128, 24, 33, 100, 128, 24, 199, 129, 128, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 121, 156, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 37, 239, 234, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 42, 233, 115, 0, 43, 152, 202, 128, 44, 210, 143, 128, 45, 120, 172, 128, 46, 178, 113, 128, 47, 88, 142, 128, 48, 146, 83, 128, 49, 93, 90, 128, 50, 114, 53, 128, 51, 61, 60, 128, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 46, 163, 128, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 141, 196, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/North": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 10, 128, 0, 0, 0, 156, 78, 173, 164, 156, 188, 39, 248, 203, 84, 186, 8, 203, 199, 94, 120, 204, 183, 93, 136, 205, 167, 64, 120, 206, 160, 122, 8, 207, 135, 34, 120, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 126, 144, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 65, 67, 83, 84, 0, 65, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 10, 65, 67, 83, 84, 45, 57, 58, 51, 48, 10},
+
+ "zoneinfo/Australia/Perth": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 194, 188, 156, 188, 61, 16, 203, 84, 207, 32, 203, 199, 115, 144, 204, 183, 114, 160, 205, 167, 85, 144, 9, 15, 251, 160, 9, 182, 24, 160, 26, 1, 98, 160, 26, 167, 127, 160, 41, 37, 92, 160, 41, 175, 202, 32, 69, 113, 191, 32, 70, 5, 103, 32, 71, 35, 124, 160, 71, 238, 131, 160, 73, 3, 94, 160, 73, 206, 101, 160, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 108, 156, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 9, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 9, 76, 77, 84, 0, 65, 87, 68, 84, 0, 65, 87, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 87, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Australia/Queensland": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 37, 73, 205, 0, 37, 239, 234, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 143, 120, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 10},
+
+ "zoneinfo/Australia/South": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 10, 128, 0, 0, 0, 156, 78, 173, 164, 156, 188, 39, 248, 203, 84, 186, 8, 203, 199, 94, 120, 204, 183, 93, 136, 205, 167, 64, 120, 206, 160, 122, 8, 207, 135, 34, 120, 3, 112, 64, 136, 4, 13, 35, 8, 5, 80, 34, 136, 5, 246, 63, 136, 7, 48, 4, 136, 7, 214, 33, 136, 9, 15, 230, 136, 9, 182, 3, 136, 10, 239, 200, 136, 11, 159, 32, 8, 12, 216, 229, 8, 13, 127, 2, 8, 14, 184, 199, 8, 15, 94, 228, 8, 16, 152, 169, 8, 17, 62, 198, 8, 18, 120, 139, 8, 19, 30, 168, 8, 20, 88, 109, 8, 20, 254, 138, 8, 22, 56, 79, 8, 22, 231, 166, 136, 24, 33, 107, 136, 24, 199, 136, 136, 26, 1, 77, 136, 26, 167, 106, 136, 27, 225, 47, 136, 28, 135, 76, 136, 29, 193, 17, 136, 30, 121, 163, 136, 31, 151, 185, 8, 32, 89, 133, 136, 33, 128, 213, 136, 34, 66, 162, 8, 35, 105, 242, 8, 36, 34, 132, 8, 37, 73, 212, 8, 38, 2, 102, 8, 39, 41, 182, 8, 39, 207, 211, 8, 41, 9, 152, 8, 41, 203, 100, 136, 42, 233, 122, 8, 43, 152, 209, 136, 44, 210, 150, 136, 45, 139, 40, 136, 46, 178, 120, 136, 47, 116, 69, 8, 48, 146, 90, 136, 49, 93, 97, 136, 50, 114, 60, 136, 51, 61, 67, 136, 52, 82, 30, 136, 53, 29, 37, 136, 54, 50, 0, 136, 54, 253, 7, 136, 56, 27, 29, 8, 56, 220, 233, 136, 57, 250, 255, 8, 58, 188, 203, 136, 59, 218, 225, 8, 60, 165, 232, 8, 61, 186, 195, 8, 62, 133, 202, 8, 63, 154, 165, 8, 64, 101, 172, 8, 65, 131, 193, 136, 66, 69, 142, 8, 67, 99, 163, 136, 68, 46, 170, 136, 69, 67, 133, 136, 70, 5, 82, 8, 71, 35, 103, 136, 71, 247, 169, 8, 72, 231, 154, 8, 73, 215, 139, 8, 74, 199, 124, 8, 75, 183, 109, 8, 76, 167, 94, 8, 77, 151, 79, 8, 78, 135, 64, 8, 79, 119, 49, 8, 80, 112, 92, 136, 81, 96, 77, 136, 82, 80, 62, 136, 83, 64, 47, 136, 84, 48, 32, 136, 85, 32, 17, 136, 86, 16, 2, 136, 86, 255, 243, 136, 87, 239, 228, 136, 88, 223, 213, 136, 89, 207, 198, 136, 90, 191, 183, 136, 91, 184, 227, 8, 92, 168, 212, 8, 93, 152, 197, 8, 94, 136, 182, 8, 95, 120, 167, 8, 96, 104, 152, 8, 97, 88, 137, 8, 98, 72, 122, 8, 99, 56, 107, 8, 100, 40, 92, 8, 101, 24, 77, 8, 102, 17, 120, 136, 103, 1, 105, 136, 103, 241, 90, 136, 104, 225, 75, 136, 105, 209, 60, 136, 106, 193, 45, 136, 107, 177, 30, 136, 108, 161, 15, 136, 109, 145, 0, 136, 110, 128, 241, 136, 111, 112, 226, 136, 112, 106, 14, 8, 113, 89, 255, 8, 114, 73, 240, 8, 115, 57, 225, 8, 116, 41, 210, 8, 117, 25, 195, 8, 118, 9, 180, 8, 118, 249, 165, 8, 119, 233, 150, 8, 120, 217, 135, 8, 121, 201, 120, 8, 122, 185, 105, 8, 123, 178, 148, 136, 124, 162, 133, 136, 125, 146, 118, 136, 126, 130, 103, 136, 127, 114, 88, 136, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 126, 144, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 65, 67, 83, 84, 0, 65, 67, 68, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 67, 83, 84, 45, 57, 58, 51, 48, 65, 67, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Sydney": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 12, 137, 128, 24, 33, 100, 128, 24, 199, 129, 128, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 121, 156, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 37, 239, 234, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 42, 233, 115, 0, 43, 152, 202, 128, 44, 210, 143, 128, 45, 120, 172, 128, 46, 178, 113, 128, 47, 88, 142, 128, 48, 146, 83, 128, 49, 93, 90, 128, 50, 114, 53, 128, 51, 61, 60, 128, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 46, 163, 128, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 141, 196, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Tasmania": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 155, 213, 120, 128, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 251, 194, 141, 0, 252, 178, 126, 0, 253, 199, 89, 0, 254, 118, 176, 128, 255, 167, 59, 0, 0, 86, 146, 128, 1, 135, 29, 0, 2, 63, 175, 0, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 23, 3, 79, 0, 24, 33, 100, 128, 24, 227, 49, 0, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 103, 39, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 128, 206, 128, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 38, 2, 95, 0, 39, 41, 175, 0, 39, 244, 182, 0, 40, 237, 225, 128, 41, 212, 152, 0, 42, 205, 195, 128, 43, 180, 122, 0, 44, 173, 165, 128, 45, 148, 92, 0, 46, 141, 135, 128, 47, 116, 62, 0, 48, 109, 105, 128, 49, 93, 90, 128, 50, 86, 134, 0, 51, 61, 60, 128, 52, 54, 104, 0, 53, 29, 30, 128, 54, 22, 74, 0, 54, 253, 0, 128, 55, 246, 44, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 191, 42, 128, 60, 165, 225, 0, 61, 159, 12, 128, 62, 133, 195, 0, 63, 126, 238, 128, 64, 101, 165, 0, 65, 94, 208, 128, 66, 69, 135, 0, 67, 62, 178, 128, 68, 46, 163, 128, 69, 30, 148, 128, 70, 5, 75, 0, 71, 7, 177, 0, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 138, 28, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 154, 176, 1, 9, 0, 0, 154, 176, 1, 9, 0, 0, 140, 160, 0, 4, 76, 77, 84, 0, 65, 69, 83, 84, 0, 65, 69, 68, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/Victoria": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 166, 156, 156, 188, 32, 240, 203, 84, 179, 0, 203, 199, 87, 112, 204, 183, 86, 128, 205, 167, 57, 112, 206, 160, 115, 0, 207, 135, 27, 112, 3, 112, 57, 128, 4, 13, 28, 0, 5, 80, 27, 128, 5, 246, 56, 128, 7, 47, 253, 128, 7, 214, 26, 128, 9, 15, 223, 128, 9, 181, 252, 128, 10, 239, 193, 128, 11, 159, 25, 0, 12, 216, 222, 0, 13, 126, 251, 0, 14, 184, 192, 0, 15, 94, 221, 0, 16, 152, 162, 0, 17, 62, 191, 0, 18, 120, 132, 0, 19, 30, 161, 0, 20, 88, 102, 0, 20, 254, 131, 0, 22, 56, 72, 0, 22, 231, 159, 128, 24, 33, 100, 128, 24, 199, 129, 128, 26, 1, 70, 128, 26, 167, 99, 128, 27, 225, 40, 128, 28, 135, 69, 128, 29, 193, 10, 128, 30, 121, 156, 128, 31, 151, 178, 0, 32, 89, 126, 128, 33, 119, 148, 0, 34, 66, 155, 0, 35, 105, 235, 0, 36, 34, 125, 0, 37, 73, 205, 0, 38, 2, 95, 0, 39, 41, 175, 0, 39, 207, 204, 0, 41, 9, 145, 0, 41, 175, 174, 0, 42, 233, 115, 0, 43, 152, 202, 128, 44, 210, 143, 128, 45, 120, 172, 128, 46, 178, 113, 128, 47, 116, 62, 0, 48, 146, 83, 128, 49, 93, 90, 128, 50, 114, 53, 128, 51, 61, 60, 128, 52, 82, 23, 128, 53, 29, 30, 128, 54, 49, 249, 128, 54, 253, 0, 128, 56, 27, 22, 0, 56, 220, 226, 128, 57, 167, 233, 128, 58, 188, 196, 128, 59, 218, 218, 0, 60, 165, 225, 0, 61, 186, 188, 0, 62, 133, 195, 0, 63, 154, 158, 0, 64, 101, 165, 0, 65, 131, 186, 128, 66, 69, 135, 0, 67, 99, 156, 128, 68, 46, 163, 128, 69, 67, 126, 128, 70, 5, 75, 0, 71, 35, 96, 128, 71, 247, 162, 0, 72, 231, 147, 0, 73, 215, 132, 0, 74, 199, 117, 0, 75, 183, 102, 0, 76, 167, 87, 0, 77, 151, 72, 0, 78, 135, 57, 0, 79, 119, 42, 0, 80, 112, 85, 128, 81, 96, 70, 128, 82, 80, 55, 128, 83, 64, 40, 128, 84, 48, 25, 128, 85, 32, 10, 128, 86, 15, 251, 128, 86, 255, 236, 128, 87, 239, 221, 128, 88, 223, 206, 128, 89, 207, 191, 128, 90, 191, 176, 128, 91, 184, 220, 0, 92, 168, 205, 0, 93, 152, 190, 0, 94, 136, 175, 0, 95, 120, 160, 0, 96, 104, 145, 0, 97, 88, 130, 0, 98, 72, 115, 0, 99, 56, 100, 0, 100, 40, 85, 0, 101, 24, 70, 0, 102, 17, 113, 128, 103, 1, 98, 128, 103, 241, 83, 128, 104, 225, 68, 128, 105, 209, 53, 128, 106, 193, 38, 128, 107, 177, 23, 128, 108, 161, 8, 128, 109, 144, 249, 128, 110, 128, 234, 128, 111, 112, 219, 128, 112, 106, 7, 0, 113, 89, 248, 0, 114, 73, 233, 0, 115, 57, 218, 0, 116, 41, 203, 0, 117, 25, 188, 0, 118, 9, 173, 0, 118, 249, 158, 0, 119, 233, 143, 0, 120, 217, 128, 0, 121, 201, 113, 0, 122, 185, 98, 0, 123, 178, 141, 128, 124, 162, 126, 128, 125, 146, 111, 128, 126, 130, 96, 128, 127, 114, 81, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 135, 232, 0, 0, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 0, 0, 154, 176, 1, 4, 0, 0, 140, 160, 0, 9, 76, 77, 84, 0, 65, 69, 68, 84, 0, 65, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 69, 83, 84, 45, 49, 48, 65, 69, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Australia/West": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 5, 0, 0, 0, 14, 128, 0, 0, 0, 156, 78, 194, 188, 156, 188, 61, 16, 203, 84, 207, 32, 203, 199, 115, 144, 204, 183, 114, 160, 205, 167, 85, 144, 9, 15, 251, 160, 9, 182, 24, 160, 26, 1, 98, 160, 26, 167, 127, 160, 41, 37, 92, 160, 41, 175, 202, 32, 69, 113, 191, 32, 70, 5, 103, 32, 71, 35, 124, 160, 71, 238, 131, 160, 73, 3, 94, 160, 73, 206, 101, 160, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 108, 156, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 9, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 9, 76, 77, 84, 0, 65, 87, 68, 84, 0, 65, 87, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 87, 83, 84, 45, 56, 10},
+
+ "zoneinfo/Australia/Yancowinna": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 5, 0, 0, 0, 10, 128, 0, 0, 0, 156, 78, 173, 164, 156, 188, 39, 248, 203, 84, 186, 8, 203, 199, 94, 120, 204, 183, 93, 136, 205, 167, 64, 120, 206, 160, 122, 8, 207, 135, 34, 120, 3, 112, 64, 136, 4, 13, 35, 8, 5, 80, 34, 136, 5, 246, 63, 136, 7, 48, 4, 136, 7, 214, 33, 136, 9, 15, 230, 136, 9, 182, 3, 136, 10, 239, 200, 136, 11, 159, 32, 8, 12, 216, 229, 8, 13, 127, 2, 8, 14, 184, 199, 8, 15, 94, 228, 8, 16, 152, 169, 8, 17, 62, 198, 8, 18, 120, 139, 8, 19, 30, 168, 8, 20, 88, 109, 8, 20, 254, 138, 8, 22, 56, 79, 8, 23, 12, 144, 136, 24, 33, 107, 136, 24, 199, 136, 136, 26, 1, 77, 136, 26, 167, 106, 136, 27, 225, 47, 136, 28, 135, 76, 136, 29, 193, 17, 136, 30, 121, 163, 136, 31, 151, 185, 8, 32, 89, 133, 136, 33, 128, 213, 136, 34, 66, 162, 8, 35, 105, 242, 8, 36, 34, 132, 8, 37, 73, 212, 8, 37, 239, 241, 8, 39, 41, 182, 8, 39, 207, 211, 8, 41, 9, 152, 8, 41, 175, 181, 8, 42, 233, 122, 8, 43, 152, 209, 136, 44, 210, 150, 136, 45, 120, 179, 136, 46, 178, 120, 136, 47, 88, 149, 136, 48, 146, 90, 136, 49, 93, 97, 136, 50, 114, 60, 136, 51, 61, 67, 136, 52, 82, 30, 136, 53, 29, 37, 136, 54, 50, 0, 136, 54, 253, 7, 136, 56, 27, 29, 8, 56, 108, 175, 216, 56, 220, 233, 136, 57, 250, 255, 8, 58, 188, 203, 136, 59, 218, 225, 8, 60, 165, 232, 8, 61, 186, 195, 8, 62, 133, 202, 8, 63, 154, 165, 8, 64, 101, 172, 8, 65, 131, 193, 136, 66, 69, 142, 8, 67, 99, 163, 136, 68, 46, 170, 136, 69, 67, 133, 136, 70, 5, 82, 8, 71, 35, 103, 136, 71, 247, 169, 8, 72, 231, 154, 8, 73, 215, 139, 8, 74, 199, 124, 8, 75, 183, 109, 8, 76, 167, 94, 8, 77, 151, 79, 8, 78, 135, 64, 8, 79, 119, 49, 8, 80, 112, 92, 136, 81, 96, 77, 136, 82, 80, 62, 136, 83, 64, 47, 136, 84, 48, 32, 136, 85, 32, 17, 136, 86, 16, 2, 136, 86, 255, 243, 136, 87, 239, 228, 136, 88, 223, 213, 136, 89, 207, 198, 136, 90, 191, 183, 136, 91, 184, 227, 8, 92, 168, 212, 8, 93, 152, 197, 8, 94, 136, 182, 8, 95, 120, 167, 8, 96, 104, 152, 8, 97, 88, 137, 8, 98, 72, 122, 8, 99, 56, 107, 8, 100, 40, 92, 8, 101, 24, 77, 8, 102, 17, 120, 136, 103, 1, 105, 136, 103, 241, 90, 136, 104, 225, 75, 136, 105, 209, 60, 136, 106, 193, 45, 136, 107, 177, 30, 136, 108, 161, 15, 136, 109, 145, 0, 136, 110, 128, 241, 136, 111, 112, 226, 136, 112, 106, 14, 8, 113, 89, 255, 8, 114, 73, 240, 8, 115, 57, 225, 8, 116, 41, 210, 8, 117, 25, 195, 8, 118, 9, 180, 8, 118, 249, 165, 8, 119, 233, 150, 8, 120, 217, 135, 8, 121, 201, 120, 8, 122, 185, 105, 8, 123, 178, 148, 136, 124, 162, 133, 136, 125, 146, 118, 136, 126, 130, 103, 136, 127, 114, 88, 136, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 1, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 126, 144, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 0, 0, 147, 168, 1, 5, 0, 0, 133, 152, 0, 0, 65, 67, 83, 84, 0, 65, 67, 68, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 65, 67, 83, 84, 45, 57, 58, 51, 48, 65, 67, 68, 84, 44, 77, 49, 48, 46, 49, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Brazil/Acre": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 134, 144, 184, 15, 102, 0, 184, 253, 92, 192, 185, 241, 80, 80, 186, 222, 144, 64, 218, 56, 202, 80, 218, 236, 22, 80, 220, 25, 253, 208, 220, 185, 117, 64, 221, 251, 49, 80, 222, 155, 250, 64, 223, 221, 182, 80, 224, 84, 79, 64, 244, 152, 27, 208, 245, 5, 122, 64, 246, 192, 128, 80, 247, 14, 58, 192, 248, 81, 72, 80, 248, 199, 225, 64, 250, 10, 238, 208, 250, 169, 20, 192, 251, 236, 34, 80, 252, 139, 153, 192, 29, 201, 170, 80, 30, 120, 243, 192, 31, 160, 81, 208, 32, 51, 235, 192, 33, 129, 133, 80, 34, 11, 228, 192, 72, 96, 127, 80, 82, 127, 4, 192, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 2, 255, 255, 192, 112, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 0, 4, 255, 255, 185, 176, 0, 8, 76, 77, 84, 0, 45, 48, 52, 0, 45, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/Brazil/DeNoronha": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 101, 100, 184, 15, 59, 208, 184, 253, 50, 144, 185, 241, 38, 32, 186, 222, 102, 16, 218, 56, 160, 32, 218, 235, 236, 32, 220, 25, 211, 160, 220, 185, 75, 16, 221, 251, 7, 32, 222, 155, 208, 16, 223, 221, 140, 32, 224, 84, 37, 16, 244, 151, 241, 160, 245, 5, 80, 16, 246, 192, 86, 32, 247, 14, 16, 144, 248, 81, 30, 32, 248, 199, 183, 16, 250, 10, 196, 160, 250, 168, 234, 144, 251, 235, 248, 32, 252, 139, 111, 144, 29, 201, 128, 32, 30, 120, 201, 144, 31, 160, 39, 160, 32, 51, 193, 144, 33, 129, 91, 32, 34, 11, 186, 144, 35, 88, 2, 160, 35, 226, 98, 16, 37, 55, 228, 160, 37, 212, 185, 16, 55, 246, 184, 160, 56, 184, 119, 16, 57, 223, 213, 32, 57, 233, 1, 144, 59, 200, 241, 160, 60, 111, 0, 144, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 225, 156, 0, 0, 255, 255, 241, 240, 1, 4, 255, 255, 227, 224, 0, 8, 76, 77, 84, 0, 45, 48, 49, 0, 45, 48, 50, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 50, 62, 50, 10},
+
+ "zoneinfo/Brazil/East": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 114, 180, 184, 15, 73, 224, 184, 253, 64, 160, 185, 241, 52, 48, 186, 222, 116, 32, 218, 56, 174, 48, 218, 235, 250, 48, 220, 25, 225, 176, 220, 185, 89, 32, 221, 251, 21, 48, 222, 155, 222, 32, 223, 221, 154, 48, 224, 84, 51, 32, 244, 90, 9, 48, 245, 5, 94, 32, 246, 192, 100, 48, 247, 14, 30, 160, 248, 81, 44, 48, 248, 199, 197, 32, 250, 10, 210, 176, 250, 168, 248, 160, 251, 236, 6, 48, 252, 139, 125, 160, 29, 201, 142, 48, 30, 120, 215, 160, 31, 160, 53, 176, 32, 51, 207, 160, 33, 129, 105, 48, 34, 11, 200, 160, 35, 88, 16, 176, 35, 226, 112, 32, 37, 55, 242, 176, 37, 212, 199, 32, 39, 33, 15, 48, 39, 189, 227, 160, 41, 0, 241, 48, 41, 148, 139, 32, 42, 234, 13, 176, 43, 107, 50, 160, 44, 192, 181, 48, 45, 102, 196, 32, 46, 160, 151, 48, 47, 70, 166, 32, 48, 128, 121, 48, 49, 29, 77, 160, 50, 87, 32, 176, 51, 6, 106, 32, 52, 56, 84, 48, 52, 248, 193, 32, 54, 32, 31, 48, 54, 207, 104, 160, 55, 246, 198, 176, 56, 184, 133, 32, 57, 223, 227, 48, 58, 143, 44, 160, 59, 200, 255, 176, 60, 111, 14, 160, 61, 196, 145, 48, 62, 78, 240, 160, 63, 145, 254, 48, 64, 46, 210, 160, 65, 134, 248, 48, 66, 23, 239, 32, 67, 81, 194, 48, 67, 247, 209, 32, 69, 77, 83, 176, 69, 224, 237, 160, 71, 17, 134, 48, 71, 183, 149, 32, 72, 250, 162, 176, 73, 151, 119, 32, 74, 218, 132, 176, 75, 128, 147, 160, 76, 186, 102, 176, 77, 96, 117, 160, 78, 154, 72, 176, 79, 73, 146, 32, 80, 131, 101, 48, 81, 32, 57, 160, 82, 99, 71, 48, 83, 0, 27, 160, 84, 67, 41, 48, 84, 233, 56, 32, 86, 35, 11, 48, 86, 201, 26, 32, 88, 2, 237, 48, 88, 168, 252, 32, 89, 226, 207, 48, 90, 136, 222, 32, 91, 203, 235, 176, 92, 104, 192, 32, 93, 171, 205, 176, 94, 72, 162, 32, 95, 139, 175, 176, 96, 49, 190, 160, 97, 107, 145, 176, 98, 17, 160, 160, 99, 75, 115, 176, 99, 250, 189, 32, 101, 43, 85, 176, 101, 209, 100, 160, 103, 20, 114, 48, 103, 177, 70, 160, 104, 244, 84, 48, 105, 154, 99, 32, 106, 212, 54, 48, 107, 122, 69, 32, 108, 180, 24, 48, 109, 90, 39, 32, 110, 147, 250, 48, 111, 58, 9, 32, 112, 125, 22, 176, 113, 25, 235, 32, 114, 92, 248, 176, 114, 249, 205, 32, 116, 60, 218, 176, 116, 217, 175, 32, 118, 28, 188, 176, 118, 194, 203, 160, 119, 252, 158, 176, 120, 171, 232, 32, 121, 220, 128, 176, 122, 130, 143, 160, 123, 197, 157, 48, 124, 98, 113, 160, 125, 165, 127, 48, 126, 75, 142, 32, 127, 133, 97, 48, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 255, 255, 212, 76, 0, 0, 255, 255, 227, 224, 1, 4, 255, 255, 213, 208, 0, 8, 76, 77, 84, 0, 45, 48, 50, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 60, 45, 48, 50, 62, 44, 77, 49, 48, 46, 51, 46, 48, 47, 48, 44, 77, 50, 46, 51, 46, 48, 47, 48, 10},
+
+ "zoneinfo/Brazil/West": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 150, 170, 127, 68, 184, 15, 87, 240, 184, 253, 78, 176, 185, 241, 66, 64, 186, 222, 130, 48, 218, 56, 188, 64, 218, 236, 8, 64, 220, 25, 239, 192, 220, 185, 103, 48, 221, 251, 35, 64, 222, 155, 236, 48, 223, 221, 168, 64, 224, 84, 65, 48, 244, 152, 13, 192, 245, 5, 108, 48, 246, 192, 114, 64, 247, 14, 44, 176, 248, 81, 58, 64, 248, 199, 211, 48, 250, 10, 224, 192, 250, 169, 6, 176, 251, 236, 20, 64, 252, 139, 139, 176, 29, 201, 156, 64, 30, 120, 229, 176, 31, 160, 67, 192, 32, 51, 221, 176, 33, 129, 119, 64, 34, 11, 214, 176, 44, 192, 195, 64, 45, 102, 210, 48, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 255, 255, 199, 188, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 76, 77, 84, 0, 45, 48, 51, 0, 45, 48, 52, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/CET": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 4, 0, 0, 0, 9, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 210, 78, 64, 144, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 28, 32, 1, 0, 0, 0, 14, 16, 0, 5, 0, 0, 28, 32, 1, 0, 0, 0, 14, 16, 0, 5, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 1, 1, 0, 0, 0, 0, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/CST6CDT": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 4, 0, 0, 0, 16, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 250, 248, 103, 0, 251, 232, 73, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 0, 1, 0, 1, 2, 3, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 255, 255, 185, 176, 1, 0, 255, 255, 171, 160, 0, 4, 255, 255, 185, 176, 1, 8, 255, 255, 185, 176, 1, 12, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 0, 0, 0, 1, 0, 0, 0, 1, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Canada/Atlantic": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 128, 241, 171, 160, 154, 228, 222, 192, 155, 214, 19, 48, 158, 184, 133, 96, 159, 186, 221, 80, 162, 157, 23, 64, 163, 48, 177, 48, 164, 122, 86, 64, 165, 27, 31, 48, 166, 83, 160, 192, 166, 252, 82, 176, 168, 60, 189, 64, 168, 220, 52, 176, 170, 28, 159, 64, 170, 205, 58, 48, 171, 252, 129, 64, 172, 191, 145, 48, 173, 238, 216, 64, 174, 140, 254, 48, 175, 188, 69, 64, 176, 127, 85, 48, 177, 174, 156, 64, 178, 75, 112, 176, 179, 142, 126, 64, 180, 36, 187, 48, 181, 110, 96, 64, 182, 21, 192, 176, 183, 78, 66, 64, 184, 8, 23, 176, 185, 36, 233, 192, 185, 231, 249, 176, 187, 4, 203, 192, 187, 209, 22, 48, 189, 0, 93, 64, 189, 157, 49, 176, 190, 242, 180, 64, 191, 144, 218, 48, 192, 211, 231, 192, 193, 94, 71, 48, 194, 141, 142, 64, 195, 80, 158, 48, 196, 109, 112, 64, 197, 48, 128, 48, 198, 114, 60, 64, 199, 16, 98, 48, 200, 54, 110, 192, 200, 249, 126, 176, 202, 22, 80, 192, 202, 217, 96, 176, 203, 136, 226, 96, 210, 35, 244, 112, 210, 96, 237, 208, 211, 117, 214, 224, 212, 64, 207, 208, 213, 85, 184, 224, 214, 32, 177, 208, 215, 53, 154, 224, 216, 0, 147, 208, 217, 21, 124, 224, 217, 224, 117, 208, 220, 222, 123, 96, 221, 169, 116, 80, 222, 190, 93, 96, 223, 137, 86, 80, 224, 158, 63, 96, 225, 105, 56, 80, 226, 126, 33, 96, 227, 73, 26, 80, 230, 71, 31, 224, 231, 18, 24, 208, 232, 39, 1, 224, 232, 241, 250, 208, 234, 6, 227, 224, 234, 209, 220, 208, 235, 230, 197, 224, 236, 177, 190, 208, 241, 143, 166, 96, 242, 127, 137, 80, 243, 111, 136, 96, 244, 95, 107, 80, 245, 79, 106, 96, 246, 63, 77, 80, 247, 47, 76, 96, 248, 40, 105, 208, 249, 15, 46, 96, 250, 8, 75, 208, 250, 248, 74, 224, 251, 232, 45, 208, 252, 216, 44, 224, 253, 200, 15, 208, 254, 184, 14, 224, 255, 167, 241, 208, 0, 151, 240, 224, 1, 135, 211, 208, 2, 119, 210, 224, 3, 112, 240, 80, 4, 96, 239, 96, 5, 80, 210, 80, 6, 64, 209, 96, 7, 48, 180, 80, 8, 32, 179, 96, 9, 16, 150, 80, 10, 0, 149, 96, 10, 240, 120, 80, 11, 224, 119, 96, 12, 217, 148, 208, 13, 192, 89, 96, 14, 185, 118, 208, 15, 169, 117, 224, 16, 153, 88, 208, 17, 137, 87, 224, 18, 121, 58, 208, 19, 105, 57, 224, 20, 89, 28, 208, 21, 73, 27, 224, 22, 56, 254, 208, 23, 40, 253, 224, 24, 34, 27, 80, 25, 8, 223, 224, 26, 1, 253, 80, 26, 241, 252, 96, 27, 225, 223, 80, 28, 209, 222, 96, 29, 193, 193, 80, 30, 177, 192, 96, 31, 161, 163, 80, 32, 117, 242, 224, 33, 129, 133, 80, 34, 85, 212, 224, 35, 106, 161, 208, 36, 53, 182, 224, 37, 74, 131, 208, 38, 21, 152, 224, 39, 42, 101, 208, 39, 254, 181, 96, 41, 10, 71, 208, 41, 222, 151, 96, 42, 234, 41, 208, 43, 190, 121, 96, 44, 211, 70, 80, 45, 158, 91, 96, 46, 179, 40, 80, 47, 126, 61, 96, 48, 147, 10, 80, 49, 103, 89, 224, 50, 114, 236, 80, 51, 71, 59, 224, 52, 82, 206, 80, 53, 39, 29, 224, 54, 50, 176, 80, 55, 6, 255, 224, 56, 27, 204, 208, 56, 230, 225, 224, 57, 251, 174, 208, 58, 198, 195, 224, 59, 219, 144, 208, 60, 175, 224, 96, 61, 187, 114, 208, 62, 143, 194, 96, 63, 155, 84, 208, 64, 111, 164, 96, 65, 132, 113, 80, 66, 79, 134, 96, 67, 100, 83, 80, 68, 47, 104, 96, 69, 68, 53, 80, 69, 243, 154, 224, 71, 45, 81, 208, 71, 211, 124, 224, 73, 13, 51, 208, 73, 179, 94, 224, 74, 237, 21, 208, 75, 156, 123, 96, 76, 214, 50, 80, 77, 124, 93, 96, 78, 182, 20, 80, 79, 92, 63, 96, 80, 149, 246, 80, 81, 60, 33, 96, 82, 117, 216, 80, 83, 28, 3, 96, 84, 85, 186, 80, 84, 251, 229, 96, 86, 53, 156, 80, 86, 229, 1, 224, 88, 30, 184, 208, 88, 196, 227, 224, 89, 254, 154, 208, 90, 164, 197, 224, 91, 222, 124, 208, 92, 132, 167, 224, 93, 190, 94, 208, 94, 100, 137, 224, 95, 158, 64, 208, 96, 77, 166, 96, 97, 135, 93, 80, 98, 45, 136, 96, 99, 103, 63, 80, 100, 13, 106, 96, 101, 71, 33, 80, 101, 237, 76, 96, 103, 39, 3, 80, 103, 205, 46, 96, 105, 6, 229, 80, 105, 173, 16, 96, 106, 230, 199, 80, 107, 150, 44, 224, 108, 207, 227, 208, 109, 118, 14, 224, 110, 175, 197, 208, 111, 85, 240, 224, 112, 143, 167, 208, 113, 53, 210, 224, 114, 111, 137, 208, 115, 21, 180, 224, 116, 79, 107, 208, 116, 254, 209, 96, 118, 56, 136, 80, 118, 222, 179, 96, 120, 24, 106, 80, 120, 190, 149, 96, 121, 248, 76, 80, 122, 158, 119, 96, 123, 216, 46, 80, 124, 126, 89, 96, 125, 184, 16, 80, 126, 94, 59, 96, 127, 151, 242, 80, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 196, 96, 0, 0, 255, 255, 213, 208, 1, 4, 255, 255, 199, 192, 0, 8, 255, 255, 213, 208, 1, 12, 255, 255, 213, 208, 1, 16, 76, 77, 84, 0, 65, 68, 84, 0, 65, 83, 84, 0, 65, 87, 84, 0, 65, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 65, 83, 84, 52, 65, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Canada/Central": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 7, 0, 0, 0, 20, 128, 0, 0, 0, 155, 1, 251, 224, 155, 195, 186, 80, 158, 184, 161, 128, 159, 186, 249, 112, 194, 160, 59, 128, 195, 79, 132, 240, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 136, 104, 0, 212, 83, 96, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 219, 0, 7, 0, 219, 200, 92, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 41, 24, 112, 230, 71, 60, 0, 231, 18, 52, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 145, 188, 240, 243, 111, 164, 128, 244, 49, 98, 240, 249, 15, 74, 128, 250, 8, 118, 0, 250, 248, 103, 0, 251, 232, 88, 0, 252, 216, 73, 0, 253, 200, 58, 0, 254, 184, 43, 0, 255, 168, 28, 0, 0, 152, 13, 0, 1, 135, 254, 0, 2, 119, 239, 0, 3, 113, 26, 128, 4, 97, 11, 128, 5, 80, 252, 128, 6, 64, 237, 128, 7, 48, 222, 128, 8, 32, 207, 128, 9, 16, 192, 128, 10, 0, 177, 128, 10, 240, 162, 128, 11, 224, 147, 128, 12, 217, 191, 0, 13, 192, 117, 128, 14, 185, 161, 0, 15, 169, 146, 0, 16, 153, 131, 0, 17, 137, 116, 0, 18, 121, 101, 0, 19, 105, 86, 0, 20, 89, 71, 0, 21, 73, 56, 0, 22, 57, 41, 0, 23, 41, 26, 0, 24, 34, 69, 128, 25, 8, 252, 0, 26, 2, 39, 128, 26, 242, 24, 128, 27, 226, 9, 128, 28, 209, 250, 128, 29, 193, 235, 128, 30, 177, 220, 128, 31, 161, 205, 128, 32, 118, 15, 0, 33, 129, 175, 128, 34, 85, 241, 0, 35, 106, 204, 0, 36, 53, 211, 0, 37, 74, 174, 0, 38, 21, 181, 0, 39, 42, 144, 0, 39, 254, 209, 128, 41, 10, 114, 0, 41, 222, 179, 128, 42, 234, 84, 0, 43, 190, 149, 128, 44, 211, 112, 128, 45, 158, 119, 128, 46, 179, 82, 128, 47, 126, 89, 128, 48, 147, 52, 128, 49, 103, 118, 0, 50, 115, 22, 128, 51, 71, 88, 0, 52, 82, 248, 128, 53, 39, 58, 0, 54, 50, 218, 128, 55, 7, 28, 0, 56, 27, 247, 0, 56, 230, 254, 0, 57, 251, 217, 0, 58, 198, 224, 0, 59, 219, 187, 0, 60, 175, 252, 128, 61, 187, 157, 0, 62, 143, 222, 128, 63, 155, 127, 0, 64, 111, 192, 128, 65, 132, 155, 128, 66, 79, 162, 128, 67, 100, 125, 128, 67, 183, 111, 224, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 164, 236, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Canada/Eastern": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 147, 112, 159, 186, 235, 96, 160, 135, 46, 200, 161, 154, 177, 64, 162, 148, 6, 240, 163, 85, 169, 64, 164, 134, 93, 240, 165, 40, 120, 96, 166, 102, 63, 240, 167, 12, 78, 224, 168, 70, 33, 240, 168, 236, 48, 224, 170, 28, 201, 112, 170, 213, 77, 96, 171, 252, 171, 112, 172, 181, 47, 96, 173, 220, 141, 112, 174, 149, 17, 96, 175, 188, 111, 112, 176, 126, 45, 224, 177, 156, 81, 112, 178, 103, 74, 96, 179, 124, 51, 112, 180, 71, 44, 96, 181, 92, 21, 112, 182, 39, 14, 96, 183, 59, 247, 112, 184, 6, 240, 96, 185, 37, 19, 240, 185, 230, 210, 96, 187, 4, 245, 240, 187, 207, 238, 224, 188, 228, 215, 240, 189, 175, 208, 224, 190, 196, 185, 240, 191, 143, 178, 224, 192, 164, 155, 240, 193, 111, 148, 224, 194, 132, 125, 240, 195, 79, 118, 224, 196, 100, 95, 240, 197, 47, 88, 224, 198, 77, 124, 112, 199, 15, 58, 224, 200, 45, 94, 112, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 211, 117, 228, 240, 212, 64, 221, 224, 213, 85, 170, 208, 214, 32, 163, 192, 215, 53, 140, 208, 216, 0, 133, 192, 217, 21, 110, 208, 218, 51, 118, 64, 218, 254, 167, 112, 220, 19, 116, 96, 220, 222, 137, 112, 221, 169, 130, 96, 222, 190, 107, 112, 223, 137, 100, 96, 224, 158, 77, 112, 225, 105, 70, 96, 226, 126, 47, 112, 227, 73, 40, 96, 228, 94, 17, 112, 229, 41, 10, 96, 230, 71, 45, 240, 231, 18, 38, 224, 232, 39, 15, 240, 233, 22, 242, 224, 234, 6, 241, 240, 234, 246, 212, 224, 235, 230, 211, 240, 236, 214, 182, 224, 237, 198, 181, 240, 238, 191, 211, 96, 239, 175, 210, 112, 240, 159, 181, 96, 241, 143, 180, 112, 242, 127, 151, 96, 243, 111, 150, 112, 244, 95, 121, 96, 245, 79, 120, 112, 246, 63, 91, 96, 247, 47, 90, 112, 248, 40, 119, 224, 249, 15, 60, 112, 250, 8, 89, 224, 250, 248, 88, 240, 251, 232, 59, 224, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 8, 32, 193, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 181, 148, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 76, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Canada/Mountain": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 136, 222, 206, 224, 158, 184, 175, 144, 159, 187, 7, 128, 160, 152, 145, 144, 160, 210, 133, 128, 162, 138, 232, 144, 163, 132, 6, 0, 164, 106, 202, 144, 165, 53, 195, 128, 166, 83, 231, 16, 167, 21, 165, 128, 168, 51, 201, 16, 168, 254, 194, 0, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 213, 85, 227, 16, 214, 32, 220, 0, 250, 248, 117, 16, 251, 232, 88, 0, 254, 184, 57, 16, 255, 168, 28, 0, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 8, 32, 221, 144, 9, 16, 192, 128, 10, 0, 191, 144, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 149, 160, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Canada/Newfoundland": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, 9, 0, 0, 0, 25, 128, 0, 0, 0, 156, 207, 98, 12, 157, 164, 230, 252, 158, 184, 126, 140, 159, 186, 214, 124, 160, 182, 136, 220, 161, 56, 255, 76, 162, 149, 25, 92, 163, 132, 252, 76, 164, 116, 251, 92, 165, 100, 222, 76, 166, 94, 23, 220, 167, 68, 192, 76, 168, 61, 249, 220, 169, 36, 162, 76, 170, 29, 219, 220, 171, 4, 132, 76, 171, 253, 189, 220, 172, 228, 102, 76, 173, 221, 159, 220, 174, 205, 130, 204, 175, 189, 129, 220, 176, 173, 100, 204, 177, 166, 158, 92, 178, 141, 70, 204, 179, 134, 128, 92, 180, 109, 40, 204, 181, 102, 98, 92, 182, 77, 10, 204, 183, 70, 68, 92, 184, 44, 236, 204, 185, 38, 38, 92, 186, 22, 9, 76, 187, 15, 66, 220, 187, 245, 235, 76, 188, 239, 36, 220, 189, 213, 205, 76, 190, 158, 77, 108, 190, 207, 6, 168, 191, 181, 175, 24, 192, 184, 49, 56, 193, 121, 239, 168, 194, 152, 19, 56, 195, 89, 209, 168, 196, 119, 245, 56, 197, 57, 179, 168, 198, 97, 17, 184, 199, 25, 149, 168, 200, 64, 243, 184, 201, 2, 178, 40, 202, 32, 213, 184, 202, 226, 148, 40, 204, 0, 183, 184, 210, 35, 244, 112, 210, 96, 230, 200, 211, 136, 68, 216, 212, 74, 3, 72, 213, 104, 38, 216, 214, 41, 229, 72, 215, 72, 8, 216, 216, 9, 199, 72, 217, 39, 234, 216, 217, 233, 169, 72, 219, 17, 7, 88, 219, 210, 197, 200, 220, 222, 116, 88, 221, 169, 109, 72, 222, 190, 86, 88, 223, 137, 79, 72, 224, 158, 56, 88, 225, 105, 49, 72, 226, 126, 26, 88, 227, 73, 19, 72, 228, 93, 252, 88, 229, 40, 245, 72, 230, 71, 24, 216, 231, 18, 17, 200, 232, 38, 250, 216, 232, 241, 243, 200, 234, 6, 220, 216, 234, 209, 213, 200, 235, 230, 190, 216, 236, 177, 183, 200, 237, 198, 160, 216, 238, 191, 190, 72, 239, 175, 189, 88, 240, 159, 160, 72, 241, 143, 159, 88, 242, 127, 130, 72, 243, 111, 129, 88, 244, 95, 100, 72, 245, 79, 99, 88, 246, 63, 70, 72, 247, 47, 69, 88, 248, 40, 98, 200, 249, 15, 39, 88, 250, 8, 68, 200, 250, 248, 67, 216, 251, 232, 38, 200, 252, 216, 37, 216, 253, 200, 8, 200, 254, 184, 7, 216, 255, 167, 234, 200, 0, 151, 233, 216, 1, 135, 204, 200, 2, 119, 203, 216, 3, 112, 233, 72, 4, 96, 232, 88, 5, 80, 203, 72, 6, 64, 202, 88, 7, 48, 173, 72, 8, 32, 172, 88, 9, 16, 143, 72, 10, 0, 142, 88, 10, 240, 113, 72, 11, 224, 112, 88, 12, 217, 141, 200, 13, 192, 82, 88, 14, 185, 111, 200, 15, 169, 110, 216, 16, 153, 81, 200, 17, 137, 80, 216, 18, 121, 51, 200, 19, 105, 50, 216, 20, 89, 21, 200, 21, 73, 20, 216, 22, 56, 247, 200, 23, 40, 246, 216, 24, 34, 20, 72, 25, 8, 216, 216, 26, 1, 246, 72, 26, 241, 245, 88, 27, 225, 216, 72, 28, 209, 215, 88, 29, 193, 186, 72, 30, 177, 185, 88, 31, 161, 156, 72, 32, 117, 207, 244, 33, 129, 98, 100, 34, 85, 177, 244, 35, 106, 112, 212, 36, 53, 147, 244, 37, 74, 96, 228, 38, 21, 117, 244, 39, 42, 66, 228, 39, 254, 146, 116, 41, 10, 36, 228, 41, 222, 116, 116, 42, 234, 6, 228, 43, 190, 86, 116, 44, 211, 35, 100, 45, 158, 56, 116, 46, 179, 5, 100, 47, 126, 26, 116, 48, 146, 231, 100, 49, 103, 54, 244, 50, 114, 201, 100, 51, 71, 24, 244, 52, 82, 171, 100, 53, 38, 250, 244, 54, 50, 141, 100, 55, 6, 220, 244, 56, 27, 169, 228, 56, 230, 190, 244, 57, 251, 139, 228, 58, 198, 160, 244, 59, 219, 109, 228, 60, 175, 189, 116, 61, 187, 79, 228, 62, 143, 159, 116, 63, 155, 49, 228, 64, 111, 129, 116, 65, 132, 78, 100, 66, 79, 99, 116, 67, 100, 48, 100, 68, 47, 69, 116, 69, 68, 18, 100, 69, 243, 119, 244, 71, 45, 46, 228, 71, 211, 89, 244, 73, 13, 16, 228, 73, 179, 59, 244, 74, 236, 242, 228, 75, 156, 88, 116, 76, 214, 15, 100, 77, 124, 58, 116, 78, 182, 13, 72, 79, 92, 56, 88, 80, 149, 239, 72, 81, 60, 26, 88, 82, 117, 209, 72, 83, 27, 252, 88, 84, 85, 179, 72, 84, 251, 222, 88, 86, 53, 149, 72, 86, 228, 250, 216, 88, 30, 177, 200, 88, 196, 220, 216, 89, 254, 147, 200, 90, 164, 190, 216, 91, 222, 117, 200, 92, 132, 160, 216, 93, 190, 87, 200, 94, 100, 130, 216, 95, 158, 57, 200, 96, 77, 159, 88, 97, 135, 86, 72, 98, 45, 129, 88, 99, 103, 56, 72, 100, 13, 99, 88, 101, 71, 26, 72, 101, 237, 69, 88, 103, 38, 252, 72, 103, 205, 39, 88, 105, 6, 222, 72, 105, 173, 9, 88, 106, 230, 192, 72, 107, 150, 37, 216, 108, 207, 220, 200, 109, 118, 7, 216, 110, 175, 190, 200, 111, 85, 233, 216, 112, 143, 160, 200, 113, 53, 203, 216, 114, 111, 130, 200, 115, 21, 173, 216, 116, 79, 100, 200, 116, 254, 202, 88, 118, 56, 129, 72, 118, 222, 172, 88, 120, 24, 99, 72, 120, 190, 142, 88, 121, 248, 69, 72, 122, 158, 112, 88, 123, 216, 39, 72, 124, 126, 82, 88, 125, 184, 9, 72, 126, 94, 52, 88, 127, 151, 235, 72, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 5, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 255, 255, 206, 148, 0, 0, 255, 255, 220, 164, 1, 4, 255, 255, 206, 148, 0, 8, 255, 255, 220, 216, 1, 4, 255, 255, 206, 200, 0, 8, 255, 255, 220, 216, 1, 12, 255, 255, 220, 216, 1, 16, 255, 255, 234, 232, 1, 20, 255, 255, 220, 216, 1, 4, 76, 77, 84, 0, 78, 68, 84, 0, 78, 83, 84, 0, 78, 80, 84, 0, 78, 87, 84, 0, 78, 68, 68, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 78, 83, 84, 51, 58, 51, 48, 78, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Canada/Pacific": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 184, 189, 160, 159, 187, 21, 144, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 211, 118, 15, 32, 212, 83, 125, 16, 213, 85, 241, 32, 214, 32, 234, 16, 215, 53, 211, 32, 216, 0, 204, 16, 217, 21, 181, 32, 217, 224, 174, 16, 218, 254, 209, 160, 219, 192, 144, 16, 220, 222, 179, 160, 221, 169, 172, 144, 222, 190, 149, 160, 223, 137, 142, 144, 224, 158, 119, 160, 225, 105, 112, 144, 226, 126, 89, 160, 227, 73, 82, 144, 228, 94, 59, 160, 229, 41, 52, 144, 230, 71, 88, 32, 231, 18, 81, 16, 232, 39, 58, 32, 232, 242, 51, 16, 234, 7, 28, 32, 234, 210, 21, 16, 235, 230, 254, 32, 236, 177, 247, 16, 237, 198, 224, 32, 238, 145, 217, 16, 239, 175, 252, 160, 240, 113, 187, 16, 241, 143, 222, 160, 242, 127, 193, 144, 243, 111, 192, 160, 244, 95, 163, 144, 245, 79, 162, 160, 246, 63, 133, 144, 247, 47, 132, 160, 248, 40, 162, 16, 249, 15, 102, 160, 250, 8, 132, 16, 250, 248, 131, 32, 251, 232, 102, 16, 252, 216, 101, 32, 253, 200, 72, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 8, 32, 235, 160, 9, 16, 206, 144, 10, 0, 205, 160, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 140, 148, 0, 0, 255, 255, 157, 144, 1, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 76, 77, 84, 0, 80, 68, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Canada/Saskatchewan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 134, 253, 147, 28, 158, 184, 175, 144, 159, 187, 7, 128, 181, 101, 79, 240, 182, 48, 72, 224, 183, 69, 49, 240, 184, 16, 42, 224, 185, 37, 19, 240, 185, 240, 12, 224, 187, 14, 48, 112, 187, 207, 238, 224, 188, 238, 18, 112, 189, 185, 11, 96, 194, 114, 8, 240, 195, 97, 235, 224, 196, 81, 234, 240, 197, 56, 147, 96, 198, 49, 204, 240, 199, 33, 175, 224, 200, 26, 233, 112, 201, 10, 204, 96, 201, 250, 203, 112, 202, 234, 174, 96, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 211, 99, 140, 16, 212, 83, 111, 0, 213, 85, 227, 16, 214, 32, 220, 0, 215, 53, 197, 16, 216, 0, 190, 0, 217, 21, 167, 16, 217, 224, 160, 0, 218, 254, 195, 144, 219, 192, 130, 0, 220, 222, 165, 144, 221, 169, 158, 128, 222, 190, 135, 144, 223, 137, 128, 128, 224, 158, 105, 144, 225, 105, 98, 128, 226, 126, 75, 144, 227, 73, 68, 128, 228, 94, 45, 144, 229, 41, 38, 128, 230, 71, 74, 16, 231, 18, 67, 0, 232, 39, 44, 16, 232, 242, 37, 0, 235, 230, 240, 16, 236, 214, 211, 0, 237, 198, 210, 16, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 255, 255, 157, 228, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 255, 255, 171, 160, 0, 20, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 67, 83, 84, 54, 10},
+
+ "zoneinfo/Canada/Yukon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 8, 0, 0, 0, 33, 128, 0, 0, 0, 158, 184, 203, 176, 159, 187, 35, 160, 160, 208, 12, 176, 161, 162, 210, 128, 203, 137, 40, 176, 210, 35, 244, 112, 210, 97, 52, 32, 247, 47, 118, 144, 248, 40, 162, 16, 251, 29, 95, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 2, 1, 2, 1, 2, 3, 4, 2, 5, 2, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 255, 255, 129, 100, 0, 0, 255, 255, 143, 128, 1, 4, 255, 255, 129, 112, 0, 8, 255, 255, 143, 128, 1, 12, 255, 255, 143, 128, 1, 16, 255, 255, 157, 144, 1, 20, 255, 255, 143, 128, 0, 25, 255, 255, 157, 144, 1, 29, 76, 77, 84, 0, 89, 68, 84, 0, 89, 83, 84, 0, 89, 87, 84, 0, 89, 80, 84, 0, 89, 68, 68, 84, 0, 80, 83, 84, 0, 80, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Chile/Continental": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, 20, 128, 0, 0, 0, 143, 48, 71, 70, 155, 92, 229, 80, 159, 124, 226, 198, 161, 0, 113, 192, 176, 94, 119, 198, 177, 119, 61, 64, 178, 65, 0, 208, 179, 88, 112, 192, 180, 34, 52, 80, 181, 57, 164, 64, 182, 3, 103, 208, 183, 26, 215, 192, 183, 228, 155, 80, 184, 253, 92, 192, 185, 199, 32, 80, 204, 28, 110, 64, 204, 108, 231, 208, 211, 220, 143, 192, 212, 27, 201, 176, 213, 51, 85, 192, 213, 118, 146, 64, 253, 209, 60, 64, 254, 146, 250, 176, 255, 204, 205, 192, 0, 114, 220, 176, 1, 117, 80, 192, 2, 64, 73, 176, 3, 85, 50, 192, 4, 32, 43, 176, 5, 62, 79, 64, 6, 0, 13, 176, 7, 11, 188, 64, 7, 223, 239, 176, 8, 254, 19, 64, 9, 191, 209, 176, 10, 221, 245, 64, 11, 168, 238, 48, 12, 189, 215, 64, 13, 136, 208, 48, 14, 157, 185, 64, 15, 104, 178, 48, 16, 134, 213, 192, 17, 72, 148, 48, 18, 102, 183, 192, 19, 40, 118, 48, 20, 70, 153, 192, 21, 17, 146, 176, 22, 38, 123, 192, 22, 241, 116, 176, 24, 6, 93, 192, 24, 209, 86, 176, 25, 230, 63, 192, 26, 177, 56, 176, 27, 207, 92, 64, 28, 145, 26, 176, 29, 175, 62, 64, 30, 112, 252, 176, 31, 143, 32, 64, 32, 127, 3, 48, 33, 111, 2, 64, 34, 57, 251, 48, 35, 78, 228, 64, 36, 25, 221, 48, 37, 56, 0, 192, 37, 249, 191, 48, 38, 242, 248, 192, 39, 217, 161, 48, 40, 247, 196, 192, 41, 194, 189, 176, 42, 215, 166, 192, 43, 162, 159, 176, 44, 183, 136, 192, 45, 130, 129, 176, 46, 151, 106, 192, 47, 98, 99, 176, 48, 128, 135, 64, 49, 66, 69, 176, 50, 96, 105, 64, 51, 61, 215, 48, 52, 64, 75, 64, 53, 11, 68, 48, 54, 13, 184, 64, 55, 6, 213, 176, 56, 0, 15, 64, 56, 203, 8, 48, 57, 233, 43, 192, 58, 170, 234, 48, 59, 201, 13, 192, 60, 138, 204, 48, 61, 168, 239, 192, 62, 106, 174, 48, 63, 136, 209, 192, 64, 83, 202, 176, 65, 104, 179, 192, 66, 51, 172, 176, 67, 72, 149, 192, 68, 19, 142, 176, 69, 49, 178, 64, 69, 243, 112, 176, 71, 17, 148, 64, 71, 239, 2, 48, 72, 241, 118, 64, 73, 188, 111, 48, 74, 209, 88, 64, 75, 184, 0, 176, 76, 177, 58, 64, 77, 198, 7, 48, 78, 80, 130, 192, 79, 156, 174, 176, 80, 66, 217, 192, 81, 124, 144, 176, 82, 43, 246, 64, 83, 92, 114, 176, 84, 11, 216, 64, 87, 55, 230, 48, 87, 175, 236, 192, 89, 23, 200, 48, 89, 143, 206, 192, 90, 247, 170, 48, 91, 111, 176, 192, 92, 215, 140, 48, 93, 79, 146, 192, 94, 183, 110, 48, 95, 47, 116, 192, 96, 151, 80, 48, 97, 24, 145, 64, 98, 128, 108, 176, 98, 248, 115, 64, 100, 96, 78, 176, 100, 216, 85, 64, 102, 64, 48, 176, 102, 184, 55, 64, 104, 32, 18, 176, 104, 152, 25, 64, 105, 255, 244, 176, 106, 119, 251, 64, 107, 223, 214, 176, 108, 97, 23, 192, 109, 200, 243, 48, 110, 64, 249, 192, 111, 168, 213, 48, 112, 32, 219, 192, 113, 136, 183, 48, 114, 0, 189, 192, 115, 104, 153, 48, 115, 224, 159, 192, 117, 72, 123, 48, 117, 201, 188, 64, 119, 49, 151, 176, 119, 169, 158, 64, 121, 17, 121, 176, 121, 137, 128, 64, 122, 241, 91, 176, 123, 105, 98, 64, 124, 209, 61, 176, 125, 73, 68, 64, 126, 177, 31, 176, 127, 41, 38, 64, 127, 255, 255, 255, 1, 2, 1, 3, 1, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 3, 2, 3, 5, 3, 2, 3, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 6, 255, 255, 189, 186, 0, 0, 255, 255, 189, 186, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 0, 12, 255, 255, 199, 192, 1, 12, 255, 255, 213, 208, 1, 16, 255, 255, 213, 208, 1, 16, 255, 255, 199, 192, 0, 12, 76, 77, 84, 0, 83, 77, 84, 0, 45, 48, 53, 0, 45, 48, 52, 0, 45, 48, 51, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 10, 60, 45, 48, 52, 62, 52, 60, 45, 48, 51, 62, 44, 77, 56, 46, 50, 46, 54, 47, 50, 52, 44, 77, 53, 46, 50, 46, 54, 47, 50, 52, 10},
+
+ "zoneinfo/Chile/EasterIsland": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 7, 0, 0, 0, 20, 128, 0, 0, 0, 185, 199, 64, 136, 253, 209, 60, 64, 254, 146, 250, 176, 255, 204, 205, 192, 0, 114, 220, 176, 1, 117, 80, 192, 2, 64, 73, 176, 3, 85, 50, 192, 4, 32, 43, 176, 5, 62, 79, 64, 6, 0, 13, 176, 7, 11, 188, 64, 7, 223, 239, 176, 8, 254, 19, 64, 9, 191, 209, 176, 10, 221, 245, 64, 11, 168, 238, 48, 12, 189, 215, 64, 13, 136, 208, 48, 14, 157, 185, 64, 15, 104, 178, 48, 16, 134, 213, 192, 17, 72, 148, 48, 18, 102, 183, 192, 19, 40, 118, 48, 20, 70, 153, 192, 21, 17, 146, 176, 22, 38, 123, 192, 22, 241, 116, 176, 24, 6, 93, 192, 24, 209, 86, 176, 25, 230, 63, 192, 26, 177, 56, 176, 27, 207, 92, 64, 28, 145, 26, 176, 29, 175, 62, 64, 30, 112, 252, 176, 31, 143, 32, 64, 32, 127, 3, 48, 33, 111, 2, 64, 34, 57, 251, 48, 35, 78, 228, 64, 36, 25, 221, 48, 37, 56, 0, 192, 37, 249, 191, 48, 38, 242, 248, 192, 39, 217, 161, 48, 40, 247, 196, 192, 41, 194, 189, 176, 42, 215, 166, 192, 43, 162, 159, 176, 44, 183, 136, 192, 45, 130, 129, 176, 46, 151, 106, 192, 47, 98, 99, 176, 48, 128, 135, 64, 49, 66, 69, 176, 50, 96, 105, 64, 51, 61, 215, 48, 52, 64, 75, 64, 53, 11, 68, 48, 54, 13, 184, 64, 55, 6, 213, 176, 56, 0, 15, 64, 56, 203, 8, 48, 57, 233, 43, 192, 58, 170, 234, 48, 59, 201, 13, 192, 60, 138, 204, 48, 61, 168, 239, 192, 62, 106, 174, 48, 63, 136, 209, 192, 64, 83, 202, 176, 65, 104, 179, 192, 66, 51, 172, 176, 67, 72, 149, 192, 68, 19, 142, 176, 69, 49, 178, 64, 69, 243, 112, 176, 71, 17, 148, 64, 71, 239, 2, 48, 72, 241, 118, 64, 73, 188, 111, 48, 74, 209, 88, 64, 75, 184, 0, 176, 76, 177, 58, 64, 77, 198, 7, 48, 78, 80, 130, 192, 79, 156, 174, 176, 80, 66, 217, 192, 81, 124, 144, 176, 82, 43, 246, 64, 83, 92, 114, 176, 84, 11, 216, 64, 87, 55, 230, 48, 87, 175, 236, 192, 89, 23, 200, 48, 89, 143, 206, 192, 90, 247, 170, 48, 91, 111, 176, 192, 92, 215, 140, 48, 93, 79, 146, 192, 94, 183, 110, 48, 95, 47, 116, 192, 96, 151, 80, 48, 97, 24, 145, 64, 98, 128, 108, 176, 98, 248, 115, 64, 100, 96, 78, 176, 100, 216, 85, 64, 102, 64, 48, 176, 102, 184, 55, 64, 104, 32, 18, 176, 104, 152, 25, 64, 105, 255, 244, 176, 106, 119, 251, 64, 107, 223, 214, 176, 108, 97, 23, 192, 109, 200, 243, 48, 110, 64, 249, 192, 111, 168, 213, 48, 112, 32, 219, 192, 113, 136, 183, 48, 114, 0, 189, 192, 115, 104, 153, 48, 115, 224, 159, 192, 117, 72, 123, 48, 117, 201, 188, 64, 119, 49, 151, 176, 119, 169, 158, 64, 121, 17, 121, 176, 121, 137, 128, 64, 122, 241, 91, 176, 123, 105, 98, 64, 124, 209, 61, 176, 125, 73, 68, 64, 126, 177, 31, 176, 127, 41, 38, 64, 127, 255, 255, 255, 1, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 255, 255, 153, 120, 0, 0, 255, 255, 153, 120, 0, 4, 255, 255, 171, 160, 1, 8, 255, 255, 157, 144, 0, 12, 255, 255, 157, 144, 0, 12, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 16, 76, 77, 84, 0, 69, 77, 84, 0, 45, 48, 54, 0, 45, 48, 55, 0, 45, 48, 53, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 10, 60, 45, 48, 54, 62, 54, 60, 45, 48, 53, 62, 44, 77, 56, 46, 50, 46, 54, 47, 50, 50, 44, 77, 53, 46, 50, 46, 54, 47, 50, 50, 10},
+
+ "zoneinfo/Cuba": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 172, 98, 194, 128, 177, 211, 148, 80, 178, 116, 93, 64, 200, 91, 102, 208, 200, 211, 81, 64, 202, 59, 72, 208, 202, 188, 109, 192, 204, 36, 101, 80, 204, 156, 79, 192, 209, 196, 11, 80, 210, 59, 245, 192, 211, 163, 237, 80, 212, 27, 215, 192, 247, 96, 5, 208, 247, 255, 125, 64, 249, 61, 68, 208, 249, 227, 83, 192, 250, 219, 59, 208, 251, 167, 134, 64, 252, 197, 169, 208, 253, 135, 104, 64, 254, 184, 0, 208, 255, 167, 227, 192, 0, 151, 226, 208, 1, 135, 197, 192, 2, 119, 196, 208, 3, 112, 226, 64, 4, 96, 225, 80, 5, 53, 20, 192, 6, 64, 195, 80, 7, 22, 72, 64, 8, 32, 165, 80, 8, 247, 123, 192, 10, 0, 135, 80, 10, 240, 106, 64, 11, 224, 105, 80, 12, 217, 134, 192, 13, 192, 75, 80, 14, 185, 104, 192, 15, 178, 162, 80, 16, 125, 155, 64, 17, 81, 234, 208, 18, 102, 183, 192, 19, 49, 204, 208, 20, 70, 153, 192, 21, 91, 130, 208, 22, 38, 123, 192, 23, 59, 100, 208, 24, 6, 93, 192, 25, 27, 70, 208, 25, 230, 63, 192, 26, 251, 40, 208, 27, 207, 92, 64, 28, 219, 10, 208, 29, 175, 62, 64, 30, 122, 83, 80, 31, 143, 32, 64, 32, 90, 53, 80, 33, 111, 2, 64, 34, 67, 81, 208, 35, 78, 228, 64, 36, 35, 51, 208, 37, 46, 198, 64, 38, 21, 138, 208, 39, 23, 226, 192, 39, 254, 167, 80, 40, 247, 210, 208, 41, 222, 137, 80, 42, 215, 180, 208, 43, 190, 107, 80, 44, 183, 150, 208, 45, 158, 77, 80, 46, 151, 120, 208, 47, 126, 47, 80, 48, 119, 90, 208, 49, 103, 75, 208, 50, 87, 60, 208, 51, 71, 45, 208, 52, 64, 89, 80, 53, 29, 213, 80, 54, 50, 176, 80, 54, 253, 183, 80, 56, 27, 204, 208, 56, 230, 211, 208, 57, 251, 174, 208, 58, 198, 181, 208, 59, 219, 144, 208, 60, 175, 210, 80, 61, 187, 114, 208, 62, 143, 180, 80, 63, 155, 84, 208, 64, 102, 91, 208, 69, 68, 53, 80, 69, 243, 140, 208, 71, 36, 23, 80, 71, 220, 169, 80, 73, 3, 249, 80, 73, 179, 80, 208, 74, 227, 219, 80, 75, 156, 109, 80, 76, 204, 247, 208, 77, 133, 137, 208, 78, 191, 78, 208, 79, 119, 224, 208, 80, 149, 246, 80, 81, 60, 19, 80, 82, 117, 216, 80, 83, 27, 245, 80, 84, 85, 186, 80, 84, 251, 215, 80, 86, 53, 156, 80, 86, 228, 243, 208, 88, 30, 184, 208, 88, 196, 213, 208, 89, 254, 154, 208, 90, 164, 183, 208, 91, 222, 124, 208, 92, 132, 153, 208, 93, 190, 94, 208, 94, 100, 123, 208, 95, 158, 64, 208, 96, 77, 152, 80, 97, 135, 93, 80, 98, 45, 122, 80, 99, 103, 63, 80, 100, 13, 92, 80, 101, 71, 33, 80, 101, 237, 62, 80, 103, 39, 3, 80, 103, 205, 32, 80, 105, 6, 229, 80, 105, 173, 2, 80, 106, 230, 199, 80, 107, 150, 30, 208, 108, 207, 227, 208, 109, 118, 0, 208, 110, 175, 197, 208, 111, 85, 226, 208, 112, 143, 167, 208, 113, 53, 196, 208, 114, 111, 137, 208, 115, 21, 166, 208, 116, 79, 107, 208, 116, 254, 195, 80, 118, 56, 136, 80, 118, 222, 165, 80, 120, 24, 106, 80, 120, 190, 135, 80, 121, 248, 76, 80, 122, 158, 105, 80, 123, 216, 46, 80, 124, 126, 75, 80, 125, 184, 16, 80, 126, 94, 45, 80, 127, 151, 242, 80, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 255, 255, 178, 200, 0, 0, 255, 255, 178, 192, 0, 4, 255, 255, 199, 192, 1, 8, 255, 255, 185, 176, 0, 12, 255, 255, 185, 176, 0, 12, 255, 255, 199, 192, 1, 8, 76, 77, 84, 0, 72, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 53, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 47, 48, 44, 77, 49, 49, 46, 49, 46, 48, 47, 49, 10},
+
+ "zoneinfo/EET": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 2, 0, 0, 0, 9, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 42, 48, 1, 0, 0, 0, 28, 32, 0, 5, 69, 69, 83, 84, 0, 69, 69, 84, 0, 1, 1, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/EST": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 255, 255, 185, 176, 0, 0, 69, 83, 84, 0, 0, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/EST5EDT": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 4, 0, 0, 0, 16, 158, 166, 30, 112, 159, 186, 235, 96, 160, 134, 0, 112, 161, 154, 205, 96, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 250, 248, 88, 240, 251, 232, 59, 224, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 164, 96, 9, 173, 148, 240, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 0, 1, 0, 1, 2, 3, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 255, 255, 199, 192, 1, 0, 255, 255, 185, 176, 0, 4, 255, 255, 199, 192, 1, 8, 255, 255, 199, 192, 1, 12, 69, 68, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 0, 0, 0, 1, 0, 0, 0, 1, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Egypt": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 4, 0, 0, 0, 13, 128, 0, 0, 0, 200, 147, 180, 224, 200, 250, 123, 208, 201, 252, 239, 224, 202, 199, 232, 208, 203, 203, 174, 96, 204, 223, 41, 208, 205, 172, 225, 224, 206, 198, 244, 208, 207, 143, 102, 224, 208, 169, 121, 208, 209, 132, 96, 224, 210, 138, 173, 80, 232, 54, 99, 96, 232, 244, 45, 80, 234, 11, 185, 96, 234, 213, 96, 208, 235, 236, 250, 240, 236, 181, 109, 0, 237, 207, 127, 240, 238, 151, 242, 0, 239, 176, 179, 112, 240, 121, 37, 128, 241, 145, 230, 240, 242, 90, 89, 0, 243, 115, 26, 112, 244, 59, 140, 128, 245, 85, 159, 112, 246, 30, 17, 128, 247, 54, 210, 240, 247, 255, 69, 0, 249, 24, 6, 112, 249, 225, 202, 0, 250, 249, 57, 240, 251, 194, 253, 128, 252, 219, 190, 240, 253, 165, 130, 128, 254, 188, 242, 112, 255, 134, 182, 0, 0, 158, 37, 240, 1, 103, 233, 128, 2, 127, 89, 112, 3, 73, 29, 0, 4, 97, 222, 112, 5, 43, 162, 0, 6, 67, 17, 240, 7, 12, 213, 128, 8, 36, 69, 112, 8, 238, 9, 0, 10, 5, 120, 240, 10, 207, 60, 128, 11, 231, 253, 240, 12, 177, 193, 128, 13, 201, 49, 112, 14, 146, 245, 0, 15, 170, 100, 240, 16, 116, 40, 128, 17, 139, 152, 112, 18, 85, 92, 0, 19, 110, 29, 112, 20, 55, 225, 0, 21, 79, 80, 240, 22, 25, 20, 128, 23, 160, 147, 240, 23, 250, 72, 0, 25, 112, 163, 240, 25, 219, 123, 128, 26, 244, 60, 240, 27, 190, 0, 128, 28, 213, 112, 112, 29, 159, 52, 0, 30, 182, 163, 240, 31, 128, 103, 128, 32, 151, 215, 112, 33, 97, 155, 0, 34, 122, 92, 112, 35, 68, 32, 0, 36, 98, 39, 112, 37, 37, 83, 128, 38, 60, 195, 112, 39, 6, 135, 0, 40, 29, 246, 240, 40, 231, 186, 128, 42, 0, 123, 240, 42, 202, 63, 128, 43, 225, 175, 112, 44, 171, 115, 0, 45, 194, 226, 240, 46, 140, 166, 128, 47, 160, 19, 224, 48, 107, 12, 208, 49, 127, 245, 224, 50, 74, 238, 208, 51, 95, 215, 224, 52, 42, 208, 208, 53, 63, 185, 224, 54, 10, 178, 208, 55, 40, 214, 96, 55, 243, 207, 80, 57, 8, 184, 96, 57, 211, 177, 80, 58, 232, 154, 96, 59, 179, 147, 80, 60, 200, 124, 96, 61, 147, 117, 80, 62, 168, 94, 96, 63, 115, 87, 80, 64, 145, 122, 224, 65, 92, 115, 208, 66, 113, 92, 224, 67, 60, 85, 208, 68, 81, 62, 224, 69, 18, 253, 80, 70, 49, 32, 224, 70, 224, 106, 80, 72, 17, 2, 224, 72, 183, 17, 208, 73, 240, 228, 224, 74, 141, 185, 80, 75, 218, 1, 96, 76, 97, 189, 208, 76, 137, 88, 224, 76, 164, 250, 80, 83, 117, 56, 224, 83, 172, 137, 208, 83, 218, 188, 96, 84, 36, 130, 80, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 1, 2, 1, 2, 1, 2, 0, 0, 29, 85, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 4, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 10},
+
+ "zoneinfo/Eire": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 10, 0, 0, 0, 20, 128, 0, 0, 0, 155, 38, 179, 145, 155, 214, 11, 17, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 165, 148, 63, 0, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 212, 73, 224, 32, 213, 30, 33, 160, 214, 78, 172, 32, 215, 44, 40, 32, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 7, 9, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 6, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 255, 255, 250, 36, 0, 0, 255, 255, 250, 15, 0, 4, 0, 0, 8, 31, 1, 8, 0, 0, 14, 16, 1, 12, 0, 0, 0, 0, 0, 16, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 16, 0, 0, 14, 16, 0, 8, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 16, 76, 77, 84, 0, 68, 77, 84, 0, 73, 83, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 71, 77, 84, 48, 73, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Etc/GMT": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Etc/GMT+0": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Etc/GMT+1": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 241, 240, 0, 0, 45, 48, 49, 0, 0, 0, 10, 60, 45, 48, 49, 62, 49, 10},
+
+ "zoneinfo/Etc/GMT+10": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 115, 96, 0, 0, 45, 49, 48, 0, 0, 0, 10, 60, 45, 49, 48, 62, 49, 48, 10},
+
+ "zoneinfo/Etc/GMT+11": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 101, 80, 0, 0, 45, 49, 49, 0, 0, 0, 10, 60, 45, 49, 49, 62, 49, 49, 10},
+
+ "zoneinfo/Etc/GMT+12": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 87, 64, 0, 0, 45, 49, 50, 0, 0, 0, 10, 60, 45, 49, 50, 62, 49, 50, 10},
+
+ "zoneinfo/Etc/GMT+2": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 227, 224, 0, 0, 45, 48, 50, 0, 0, 0, 10, 60, 45, 48, 50, 62, 50, 10},
+
+ "zoneinfo/Etc/GMT+3": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 213, 208, 0, 0, 45, 48, 51, 0, 0, 0, 10, 60, 45, 48, 51, 62, 51, 10},
+
+ "zoneinfo/Etc/GMT+4": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 199, 192, 0, 0, 45, 48, 52, 0, 0, 0, 10, 60, 45, 48, 52, 62, 52, 10},
+
+ "zoneinfo/Etc/GMT+5": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 185, 176, 0, 0, 45, 48, 53, 0, 0, 0, 10, 60, 45, 48, 53, 62, 53, 10},
+
+ "zoneinfo/Etc/GMT+6": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 171, 160, 0, 0, 45, 48, 54, 0, 0, 0, 10, 60, 45, 48, 54, 62, 54, 10},
+
+ "zoneinfo/Etc/GMT+7": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 157, 144, 0, 0, 45, 48, 55, 0, 0, 0, 10, 60, 45, 48, 55, 62, 55, 10},
+
+ "zoneinfo/Etc/GMT+8": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 143, 128, 0, 0, 45, 48, 56, 0, 0, 0, 10, 60, 45, 48, 56, 62, 56, 10},
+
+ "zoneinfo/Etc/GMT+9": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 255, 255, 129, 112, 0, 0, 45, 48, 57, 0, 0, 0, 10, 60, 45, 48, 57, 62, 57, 10},
+
+ "zoneinfo/Etc/GMT-0": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Etc/GMT-1": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 14, 16, 0, 0, 43, 48, 49, 0, 0, 0, 10, 60, 43, 48, 49, 62, 45, 49, 10},
+
+ "zoneinfo/Etc/GMT-10": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 140, 160, 0, 0, 43, 49, 48, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Etc/GMT-11": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 154, 176, 0, 0, 43, 49, 49, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Etc/GMT-12": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 168, 192, 0, 0, 43, 49, 50, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Etc/GMT-13": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 182, 208, 0, 0, 43, 49, 51, 0, 0, 0, 10, 60, 43, 49, 51, 62, 45, 49, 51, 10},
+
+ "zoneinfo/Etc/GMT-14": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 196, 224, 0, 0, 43, 49, 52, 0, 0, 0, 10, 60, 43, 49, 52, 62, 45, 49, 52, 10},
+
+ "zoneinfo/Etc/GMT-2": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 28, 32, 0, 0, 43, 48, 50, 0, 0, 0, 10, 60, 43, 48, 50, 62, 45, 50, 10},
+
+ "zoneinfo/Etc/GMT-3": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 42, 48, 0, 0, 43, 48, 51, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Etc/GMT-4": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 56, 64, 0, 0, 43, 48, 52, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Etc/GMT-5": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 70, 80, 0, 0, 43, 48, 53, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Etc/GMT-6": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 84, 96, 0, 0, 43, 48, 54, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Etc/GMT-7": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 98, 112, 0, 0, 43, 48, 55, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Etc/GMT-8": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 112, 128, 0, 0, 43, 48, 56, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Etc/GMT-9": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 126, 144, 0, 0, 43, 48, 57, 0, 0, 0, 10, 60, 43, 48, 57, 62, 45, 57, 10},
+
+ "zoneinfo/Etc/GMT0": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Etc/Greenwich": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Etc/UCT": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 67, 84, 0, 0, 0, 10, 85, 67, 84, 48, 10},
+
+ "zoneinfo/Etc/UTC": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 84, 67, 0, 0, 0, 10, 85, 84, 67, 48, 10},
+
+ "zoneinfo/Etc/Universal": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 84, 67, 0, 0, 0, 10, 85, 84, 67, 48, 10},
+
+ "zoneinfo/Etc/Zulu": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 84, 67, 0, 0, 0, 10, 85, 84, 67, 48, 10},
+
+ "zoneinfo/Europe/Amsterdam": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 14, 0, 0, 0, 33, 128, 0, 0, 0, 155, 12, 46, 236, 155, 213, 214, 92, 156, 217, 184, 12, 157, 164, 191, 12, 158, 167, 37, 12, 159, 151, 22, 12, 160, 144, 65, 140, 161, 118, 248, 12, 162, 112, 35, 140, 163, 86, 218, 12, 164, 80, 5, 140, 165, 54, 188, 12, 166, 37, 91, 140, 167, 39, 193, 140, 168, 94, 227, 140, 169, 7, 163, 140, 169, 238, 90, 12, 170, 231, 133, 140, 172, 39, 226, 12, 172, 199, 103, 140, 173, 237, 102, 12, 174, 167, 73, 140, 175, 206, 153, 140, 176, 135, 43, 140, 177, 177, 30, 140, 178, 112, 72, 12, 179, 146, 82, 12, 180, 80, 42, 12, 181, 115, 133, 140, 182, 48, 12, 12, 183, 84, 185, 12, 184, 15, 238, 12, 185, 64, 120, 140, 185, 239, 208, 12, 187, 24, 113, 140, 187, 216, 236, 140, 188, 249, 165, 12, 189, 184, 206, 140, 190, 218, 216, 140, 191, 152, 176, 140, 192, 189, 93, 140, 193, 120, 146, 140, 194, 167, 203, 140, 194, 220, 93, 92, 195, 88, 116, 112, 196, 127, 196, 112, 197, 56, 86, 112, 198, 96, 247, 240, 199, 33, 114, 240, 200, 68, 178, 80, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 210, 78, 64, 144, 13, 42, 253, 112, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 7, 5, 6, 5, 6, 5, 10, 8, 9, 8, 9, 8, 9, 8, 13, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 0, 0, 4, 148, 0, 0, 0, 0, 18, 164, 1, 4, 0, 0, 4, 148, 0, 8, 0, 0, 18, 164, 1, 4, 0, 0, 4, 148, 0, 8, 0, 0, 4, 176, 0, 12, 0, 0, 18, 192, 1, 18, 0, 0, 18, 192, 1, 18, 0, 0, 14, 16, 0, 24, 0, 0, 28, 32, 1, 28, 0, 0, 28, 32, 1, 28, 0, 0, 28, 32, 1, 28, 0, 0, 14, 16, 0, 24, 0, 0, 14, 16, 0, 24, 76, 77, 84, 0, 78, 83, 84, 0, 65, 77, 84, 0, 43, 48, 48, 50, 48, 0, 43, 48, 49, 50, 48, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Andorra": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 5, 0, 0, 0, 17, 128, 0, 0, 0, 212, 65, 219, 0, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 1, 108, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 16, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 8, 76, 77, 84, 0, 87, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Astrakhan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 9, 0, 0, 0, 16, 128, 0, 0, 0, 170, 24, 69, 116, 181, 164, 11, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 41, 212, 236, 96, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 70, 5, 173, 112, 71, 35, 194, 240, 71, 238, 201, 240, 73, 3, 164, 240, 73, 206, 171, 240, 74, 227, 134, 240, 75, 174, 141, 240, 76, 204, 163, 112, 77, 142, 111, 240, 84, 76, 29, 96, 86, 247, 20, 112, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 4, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 4, 0, 0, 45, 12, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 0, 0, 56, 64, 0, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 1, 12, 0, 0, 42, 48, 0, 4, 0, 0, 56, 64, 0, 12, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 52, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Europe/Athens": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 10, 0, 0, 0, 26, 128, 0, 0, 0, 155, 128, 33, 128, 185, 124, 233, 224, 185, 198, 175, 208, 201, 242, 99, 224, 202, 16, 168, 80, 204, 231, 75, 16, 205, 170, 76, 240, 206, 162, 24, 224, 207, 147, 105, 112, 223, 19, 158, 96, 223, 183, 10, 80, 9, 236, 94, 96, 11, 24, 244, 96, 11, 205, 174, 0, 12, 189, 159, 0, 13, 164, 85, 128, 14, 140, 93, 128, 15, 132, 55, 128, 16, 106, 252, 16, 17, 100, 123, 240, 18, 82, 170, 240, 19, 70, 130, 96, 20, 51, 194, 80, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 3, 2, 3, 2, 5, 4, 5, 4, 3, 2, 3, 6, 7, 6, 7, 6, 7, 6, 3, 2, 3, 2, 3, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 0, 0, 22, 60, 0, 0, 0, 0, 22, 60, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 14, 16, 0, 17, 0, 0, 28, 32, 1, 21, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 76, 77, 84, 0, 65, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Belfast": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 6, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 255, 181, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 71, 77, 84, 48, 66, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Europe/Belgrade": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 202, 2, 53, 224, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 161, 140, 16, 210, 78, 64, 144, 24, 69, 95, 112, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 4, 2, 3, 2, 3, 2, 1, 3, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 19, 56, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Berlin": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 9, 0, 0, 0, 18, 128, 0, 0, 0, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 209, 182, 150, 0, 210, 88, 190, 128, 210, 161, 79, 16, 210, 219, 52, 240, 211, 99, 27, 144, 212, 75, 35, 144, 213, 57, 209, 32, 213, 103, 231, 144, 213, 168, 115, 0, 214, 41, 180, 16, 215, 44, 26, 16, 216, 9, 150, 16, 217, 2, 193, 144, 217, 233, 120, 16, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 1, 4, 2, 3, 4, 3, 6, 1, 4, 3, 4, 3, 4, 2, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 0, 0, 12, 136, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 42, 48, 1, 13, 0, 0, 42, 48, 1, 13, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 67, 69, 77, 84, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Bratislava": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 110, 94, 144, 209, 121, 255, 16, 210, 161, 79, 16, 211, 128, 28, 144, 212, 73, 210, 16, 213, 76, 56, 16, 214, 41, 180, 16, 215, 44, 26, 16, 216, 9, 150, 16, 217, 1, 112, 16, 217, 233, 120, 16, 16, 237, 100, 112, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 13, 136, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 80, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Brussels": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 11, 0, 0, 0, 22, 128, 0, 0, 0, 152, 68, 73, 128, 155, 12, 37, 112, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 159, 206, 248, 48, 160, 96, 165, 240, 161, 126, 187, 112, 162, 46, 18, 240, 163, 122, 76, 240, 164, 53, 129, 240, 165, 94, 35, 112, 166, 37, 53, 240, 167, 39, 155, 240, 168, 42, 1, 240, 169, 7, 125, 240, 169, 238, 52, 112, 170, 231, 95, 240, 171, 215, 80, 240, 172, 199, 65, 240, 173, 201, 167, 240, 174, 167, 35, 240, 175, 160, 79, 112, 176, 135, 5, 240, 177, 137, 107, 240, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 184, 255, 227, 160, 185, 239, 212, 160, 186, 214, 139, 32, 187, 216, 241, 32, 188, 200, 226, 32, 189, 184, 211, 32, 190, 159, 137, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 104, 136, 32, 195, 88, 121, 32, 196, 63, 47, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 200, 74, 25, 32, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 91, 191, 96, 208, 110, 94, 144, 209, 114, 22, 16, 210, 78, 64, 144, 211, 145, 64, 16, 212, 75, 35, 144, 13, 42, 253, 112, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 5, 2, 3, 4, 3, 4, 8, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 3, 4, 3, 4, 3, 5, 4, 3, 4, 3, 4, 2, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 0, 0, 4, 26, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 16, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 1, 17, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 8, 66, 77, 84, 0, 87, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 87, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Bucharest": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 183, 176, 210, 8, 185, 62, 243, 96, 185, 239, 156, 96, 186, 223, 141, 96, 187, 207, 126, 96, 188, 200, 169, 224, 189, 184, 154, 224, 190, 168, 139, 224, 191, 152, 124, 224, 192, 136, 109, 224, 193, 120, 94, 224, 194, 104, 79, 224, 195, 88, 64, 224, 196, 72, 49, 224, 197, 56, 34, 224, 198, 40, 19, 224, 199, 24, 4, 224, 17, 173, 209, 96, 18, 83, 224, 80, 19, 77, 11, 208, 20, 51, 208, 96, 21, 35, 221, 128, 22, 19, 206, 128, 23, 3, 191, 128, 23, 243, 176, 128, 24, 227, 161, 128, 25, 211, 146, 128, 26, 195, 131, 128, 27, 188, 175, 0, 28, 172, 160, 0, 29, 156, 145, 0, 30, 140, 130, 0, 31, 124, 115, 0, 32, 108, 100, 0, 33, 92, 85, 0, 34, 76, 70, 0, 35, 60, 55, 0, 36, 44, 40, 0, 37, 28, 25, 0, 38, 12, 10, 0, 39, 5, 53, 128, 39, 127, 180, 224, 39, 245, 10, 96, 40, 228, 251, 96, 41, 212, 236, 96, 42, 196, 221, 96, 43, 180, 206, 96, 44, 164, 191, 96, 45, 36, 160, 224, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 114, 123, 208, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 5, 2, 3, 2, 3, 2, 3, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 0, 0, 24, 120, 0, 0, 0, 0, 24, 120, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 76, 77, 84, 0, 66, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Budapest": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 48, 88, 112, 158, 167, 41, 160, 159, 132, 151, 144, 160, 154, 210, 32, 161, 192, 194, 144, 201, 243, 195, 112, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 153, 120, 224, 210, 138, 187, 96, 211, 80, 166, 144, 212, 73, 210, 16, 213, 57, 195, 16, 214, 41, 180, 16, 215, 25, 165, 16, 216, 9, 150, 16, 217, 2, 193, 144, 217, 233, 120, 16, 218, 237, 47, 144, 219, 230, 91, 16, 226, 162, 168, 240, 227, 81, 242, 96, 228, 131, 220, 112, 229, 51, 37, 224, 230, 116, 225, 240, 231, 17, 182, 96, 232, 84, 210, 0, 232, 241, 194, 144, 19, 77, 54, 0, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 4, 3, 4, 3, 4, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 0, 0, 17, 228, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Busingen": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 202, 23, 106, 0, 202, 226, 113, 0, 203, 247, 76, 0, 204, 194, 83, 0, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 6, 250, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 66, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Chisinau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 16, 0, 0, 0, 38, 128, 0, 0, 0, 158, 107, 159, 12, 183, 176, 210, 8, 185, 62, 243, 96, 185, 239, 156, 96, 186, 223, 141, 96, 187, 207, 126, 96, 188, 200, 169, 224, 189, 184, 154, 224, 190, 168, 139, 224, 191, 152, 124, 224, 192, 136, 109, 224, 193, 120, 94, 224, 194, 104, 79, 224, 195, 88, 64, 224, 196, 72, 49, 224, 197, 56, 34, 224, 198, 40, 19, 224, 199, 24, 4, 224, 200, 188, 147, 96, 202, 119, 125, 80, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 78, 144, 96, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 38, 67, 76, 224, 39, 5, 53, 128, 39, 245, 38, 128, 40, 229, 23, 128, 41, 96, 232, 96, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 114, 123, 208, 51, 61, 173, 0, 52, 82, 136, 0, 53, 29, 143, 0, 54, 50, 106, 0, 54, 253, 113, 0, 56, 27, 134, 128, 56, 221, 83, 0, 57, 251, 104, 128, 58, 189, 53, 0, 59, 219, 74, 128, 60, 166, 81, 128, 61, 187, 44, 128, 62, 134, 51, 128, 63, 155, 14, 128, 64, 102, 21, 128, 65, 132, 43, 0, 66, 69, 247, 128, 67, 100, 13, 0, 68, 37, 217, 128, 69, 67, 239, 0, 70, 5, 187, 128, 71, 35, 209, 0, 71, 238, 216, 0, 73, 3, 179, 0, 73, 206, 186, 0, 74, 227, 149, 0, 75, 174, 156, 0, 76, 204, 177, 128, 77, 142, 126, 0, 78, 172, 147, 128, 79, 110, 96, 0, 80, 140, 117, 128, 81, 87, 124, 128, 82, 108, 87, 128, 83, 55, 94, 128, 84, 76, 57, 128, 85, 23, 64, 128, 86, 44, 27, 128, 86, 247, 34, 128, 88, 21, 56, 0, 88, 215, 4, 128, 89, 245, 26, 0, 90, 182, 230, 128, 91, 212, 252, 0, 92, 160, 3, 0, 93, 180, 222, 0, 94, 127, 229, 0, 95, 148, 192, 0, 96, 95, 199, 0, 97, 125, 220, 128, 98, 63, 169, 0, 99, 93, 190, 128, 100, 31, 139, 0, 101, 61, 160, 128, 102, 8, 167, 128, 103, 29, 130, 128, 103, 232, 137, 128, 104, 253, 100, 128, 105, 200, 107, 128, 106, 221, 70, 128, 107, 168, 77, 128, 108, 198, 99, 0, 109, 136, 47, 128, 110, 166, 69, 0, 111, 104, 17, 128, 112, 134, 39, 0, 113, 81, 46, 0, 114, 102, 9, 0, 115, 49, 16, 0, 116, 69, 235, 0, 117, 16, 242, 0, 118, 47, 7, 128, 118, 240, 212, 0, 120, 14, 233, 128, 120, 208, 182, 0, 121, 238, 203, 128, 122, 176, 152, 0, 123, 206, 173, 128, 124, 153, 180, 128, 125, 174, 143, 128, 126, 121, 150, 128, 127, 142, 113, 128, 1, 2, 5, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 9, 7, 8, 7, 8, 11, 10, 11, 10, 11, 10, 11, 10, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 6, 4, 3, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 0, 0, 27, 8, 0, 0, 0, 0, 26, 244, 0, 4, 0, 0, 24, 120, 0, 8, 0, 0, 42, 48, 1, 12, 0, 0, 28, 32, 0, 17, 0, 0, 28, 32, 0, 17, 0, 0, 42, 48, 1, 12, 0, 0, 14, 16, 0, 21, 0, 0, 28, 32, 1, 25, 0, 0, 28, 32, 1, 25, 0, 0, 56, 64, 1, 30, 0, 0, 42, 48, 0, 34, 0, 0, 42, 48, 0, 34, 0, 0, 56, 64, 1, 30, 0, 0, 42, 48, 1, 12, 0, 0, 28, 32, 0, 17, 76, 77, 84, 0, 67, 77, 84, 0, 66, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 77, 83, 75, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Copenhagen": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 30, 140, 96, 155, 213, 190, 208, 200, 67, 87, 112, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 210, 36, 16, 144, 211, 121, 133, 16, 212, 27, 173, 144, 213, 94, 173, 16, 213, 223, 224, 16, 215, 71, 201, 144, 215, 191, 194, 16, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 11, 204, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 67, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Dublin": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 10, 0, 0, 0, 20, 128, 0, 0, 0, 155, 38, 179, 145, 155, 214, 11, 17, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 165, 148, 63, 0, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 212, 73, 224, 32, 213, 30, 33, 160, 214, 78, 172, 32, 215, 44, 40, 32, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 7, 9, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 6, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 255, 255, 250, 36, 0, 0, 255, 255, 250, 15, 0, 4, 0, 0, 8, 31, 1, 8, 0, 0, 14, 16, 1, 12, 0, 0, 0, 0, 0, 16, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 16, 0, 0, 14, 16, 0, 8, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 16, 76, 77, 84, 0, 68, 77, 84, 0, 73, 83, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 71, 77, 84, 48, 73, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Europe/Gibraltar": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 7, 0, 0, 0, 26, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 250, 252, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 17, 0, 0, 28, 32, 1, 21, 0, 0, 14, 16, 0, 17, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Guernsey": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 6, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 255, 181, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 71, 77, 84, 48, 66, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Europe/Helsinki": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 6, 0, 0, 0, 17, 128, 0, 0, 0, 164, 115, 111, 27, 203, 206, 81, 96, 204, 192, 229, 96, 21, 35, 221, 128, 22, 19, 206, 128, 23, 3, 191, 128, 23, 243, 176, 128, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 0, 0, 23, 101, 0, 0, 0, 0, 23, 101, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 76, 77, 84, 0, 72, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Isle_of_Man": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 6, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 255, 181, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 71, 77, 84, 48, 66, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Europe/Istanbul": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 11, 0, 0, 0, 25, 128, 0, 0, 0, 144, 139, 245, 152, 155, 12, 23, 96, 155, 213, 190, 208, 162, 101, 99, 224, 163, 123, 130, 80, 164, 78, 128, 96, 165, 63, 180, 208, 166, 37, 39, 224, 167, 39, 127, 208, 170, 40, 40, 96, 170, 225, 253, 208, 171, 249, 137, 224, 172, 195, 49, 80, 200, 127, 238, 96, 200, 255, 193, 208, 201, 74, 245, 96, 202, 206, 128, 80, 203, 203, 174, 96, 204, 229, 193, 80, 209, 113, 235, 224, 210, 107, 9, 80, 211, 162, 57, 96, 212, 67, 2, 80, 213, 76, 13, 224, 214, 41, 123, 208, 215, 43, 239, 224, 216, 9, 93, 208, 217, 2, 151, 96, 217, 233, 63, 208, 218, 239, 168, 96, 219, 210, 92, 80, 220, 212, 208, 96, 221, 179, 143, 208, 241, 244, 185, 96, 242, 100, 186, 208, 245, 104, 6, 96, 246, 31, 56, 208, 0, 160, 186, 224, 1, 107, 179, 208, 2, 128, 156, 224, 3, 75, 149, 208, 4, 105, 185, 96, 5, 52, 178, 80, 6, 110, 147, 112, 7, 57, 168, 128, 7, 251, 117, 0, 9, 25, 166, 160, 9, 219, 58, 224, 10, 240, 7, 208, 12, 16, 206, 96, 12, 217, 36, 80, 13, 164, 57, 96, 14, 166, 145, 80, 15, 132, 27, 96, 16, 134, 115, 80, 18, 103, 152, 192, 19, 77, 54, 0, 20, 71, 122, 192, 21, 35, 221, 128, 22, 39, 92, 192, 23, 3, 191, 128, 24, 7, 62, 192, 25, 137, 148, 80, 25, 220, 148, 192, 28, 198, 211, 208, 29, 155, 21, 80, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 229, 9, 112, 41, 212, 250, 112, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 139, 131, 240, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 69, 152, 50, 224, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 143, 221, 144, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 56, 190, 16, 84, 76, 71, 144, 85, 23, 78, 144, 86, 62, 158, 144, 86, 247, 48, 144, 87, 207, 46, 80, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 2, 3, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 3, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 5, 5, 0, 0, 27, 40, 0, 0, 0, 0, 27, 104, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 21, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 0, 21, 76, 77, 84, 0, 73, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 43, 48, 52, 0, 43, 48, 51, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Europe/Jersey": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 6, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 255, 181, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 71, 77, 84, 48, 66, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Europe/Kaliningrad": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 15, 0, 0, 0, 34, 128, 0, 0, 0, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 149, 132, 96, 210, 138, 173, 80, 210, 219, 38, 224, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 25, 0, 38, 12, 10, 0, 39, 5, 53, 128, 39, 245, 38, 128, 40, 229, 23, 128, 41, 213, 8, 128, 42, 196, 249, 128, 43, 180, 234, 128, 44, 164, 219, 128, 45, 148, 204, 128, 46, 132, 189, 128, 47, 116, 174, 128, 48, 100, 159, 128, 49, 93, 203, 0, 50, 114, 166, 0, 51, 61, 173, 0, 52, 82, 136, 0, 53, 29, 143, 0, 54, 50, 106, 0, 54, 253, 113, 0, 56, 27, 134, 128, 56, 221, 83, 0, 57, 251, 104, 128, 58, 189, 53, 0, 59, 219, 74, 128, 60, 166, 81, 128, 61, 187, 44, 128, 62, 134, 51, 128, 63, 155, 14, 128, 64, 102, 21, 128, 65, 132, 43, 0, 66, 69, 247, 128, 67, 100, 13, 0, 68, 37, 217, 128, 69, 67, 239, 0, 70, 5, 187, 128, 71, 35, 209, 0, 71, 238, 216, 0, 73, 3, 179, 0, 73, 206, 186, 0, 74, 227, 149, 0, 75, 174, 156, 0, 76, 204, 177, 128, 77, 142, 126, 0, 84, 76, 43, 112, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 9, 10, 9, 10, 9, 10, 9, 10, 9, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 13, 12, 0, 0, 19, 56, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 56, 64, 1, 13, 0, 0, 42, 48, 0, 17, 0, 0, 42, 48, 0, 17, 0, 0, 56, 64, 1, 13, 0, 0, 42, 48, 1, 21, 0, 0, 28, 32, 0, 26, 0, 0, 42, 48, 0, 30, 0, 0, 28, 32, 0, 26, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 77, 83, 68, 0, 77, 83, 75, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 43, 48, 51, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 10},
+
+ "zoneinfo/Europe/Kiev": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 13, 0, 0, 0, 34, 128, 0, 0, 0, 170, 25, 167, 100, 181, 164, 25, 96, 202, 205, 46, 208, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 206, 205, 168, 112, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 38, 141, 32, 224, 40, 229, 23, 128, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 3, 6, 4, 5, 4, 3, 7, 3, 7, 3, 7, 3, 7, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 10, 2, 10, 2, 10, 2, 10, 2, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 0, 0, 28, 156, 0, 0, 0, 0, 28, 156, 0, 4, 0, 0, 28, 32, 0, 8, 0, 0, 42, 48, 0, 12, 0, 0, 14, 16, 0, 16, 0, 0, 28, 32, 1, 20, 0, 0, 28, 32, 1, 20, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 0, 12, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 1, 29, 0, 0, 42, 48, 1, 29, 0, 0, 28, 32, 0, 8, 76, 77, 84, 0, 75, 77, 84, 0, 69, 69, 84, 0, 77, 83, 75, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 69, 69, 83, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Kirov": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 8, 0, 0, 0, 16, 128, 0, 0, 0, 161, 0, 57, 128, 181, 164, 11, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 41, 212, 236, 96, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 70, 5, 173, 112, 71, 35, 194, 240, 71, 238, 201, 240, 73, 3, 164, 240, 73, 206, 171, 240, 74, 227, 134, 240, 75, 174, 141, 240, 76, 204, 163, 112, 77, 142, 111, 240, 84, 76, 29, 96, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 4, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 7, 0, 0, 46, 152, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 0, 0, 56, 64, 0, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 1, 12, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 52, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Europe/Lisbon": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 11, 0, 0, 0, 27, 128, 0, 0, 0, 146, 230, 151, 29, 155, 75, 109, 112, 155, 254, 199, 128, 156, 156, 237, 112, 157, 201, 131, 112, 158, 127, 114, 112, 159, 170, 182, 240, 160, 95, 84, 112, 161, 139, 234, 112, 162, 65, 217, 112, 163, 110, 111, 112, 164, 35, 12, 240, 165, 79, 162, 240, 170, 5, 239, 112, 170, 244, 142, 240, 173, 201, 167, 240, 174, 167, 35, 240, 175, 160, 79, 112, 176, 135, 5, 240, 177, 137, 107, 240, 178, 112, 34, 112, 179, 114, 136, 112, 180, 80, 4, 112, 183, 50, 76, 112, 184, 15, 200, 112, 184, 255, 185, 112, 185, 239, 170, 112, 188, 200, 183, 240, 189, 184, 168, 240, 190, 159, 95, 112, 191, 152, 138, 240, 192, 154, 240, 240, 193, 120, 108, 240, 194, 104, 93, 240, 195, 88, 78, 240, 196, 63, 5, 112, 197, 56, 48, 240, 198, 58, 150, 240, 199, 88, 172, 112, 199, 217, 223, 112, 201, 1, 47, 112, 201, 241, 32, 112, 202, 226, 98, 240, 203, 181, 82, 240, 203, 236, 163, 224, 204, 128, 75, 224, 204, 220, 162, 240, 205, 149, 52, 240, 205, 195, 75, 96, 206, 114, 162, 224, 206, 197, 191, 112, 207, 117, 22, 240, 207, 172, 103, 224, 208, 82, 132, 224, 208, 165, 161, 112, 209, 84, 248, 240, 209, 140, 73, 224, 210, 50, 102, 224, 210, 133, 131, 112, 211, 89, 196, 240, 212, 73, 181, 240, 213, 57, 209, 32, 214, 41, 194, 32, 215, 25, 179, 32, 216, 9, 164, 32, 216, 249, 149, 32, 217, 233, 134, 32, 220, 185, 89, 32, 221, 178, 132, 160, 222, 162, 117, 160, 223, 146, 102, 160, 224, 130, 87, 160, 225, 114, 72, 160, 226, 98, 57, 160, 227, 82, 42, 160, 228, 66, 27, 160, 229, 50, 12, 160, 230, 33, 253, 160, 231, 27, 41, 32, 232, 11, 26, 32, 232, 251, 11, 32, 233, 234, 252, 32, 234, 218, 237, 32, 235, 202, 222, 32, 236, 186, 207, 32, 237, 170, 192, 32, 238, 154, 177, 32, 239, 138, 162, 32, 240, 122, 147, 32, 241, 106, 132, 32, 242, 99, 175, 160, 243, 83, 160, 160, 244, 67, 145, 160, 245, 51, 130, 160, 246, 35, 115, 160, 247, 19, 100, 160, 248, 3, 85, 160, 248, 243, 70, 160, 12, 171, 42, 0, 13, 155, 27, 0, 14, 139, 12, 0, 15, 132, 55, 128, 16, 116, 40, 128, 17, 100, 25, 128, 18, 84, 24, 144, 19, 67, 251, 128, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 189, 160, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 4, 3, 5, 3, 4, 3, 5, 3, 4, 3, 5, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 7, 8, 7, 8, 7, 8, 7, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 255, 255, 247, 99, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 0, 0, 28, 32, 1, 13, 0, 0, 14, 16, 0, 18, 0, 0, 14, 16, 0, 18, 0, 0, 28, 32, 1, 22, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 76, 77, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 87, 69, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Europe/Ljubljana": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 202, 2, 53, 224, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 161, 140, 16, 210, 78, 64, 144, 24, 69, 95, 112, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 4, 2, 3, 2, 3, 2, 1, 3, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 19, 56, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/London": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 6, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 255, 181, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 71, 77, 84, 48, 66, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Europe/Luxembourg": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 14, 0, 0, 0, 22, 128, 0, 0, 0, 132, 162, 173, 188, 155, 30, 140, 96, 155, 213, 218, 240, 156, 234, 167, 224, 157, 164, 153, 112, 158, 185, 144, 144, 159, 132, 151, 144, 159, 224, 196, 112, 160, 96, 165, 240, 161, 126, 229, 160, 162, 46, 18, 240, 163, 122, 105, 16, 164, 53, 129, 240, 165, 94, 63, 144, 166, 37, 53, 240, 167, 39, 170, 0, 168, 42, 1, 240, 169, 7, 154, 16, 169, 238, 52, 112, 170, 231, 110, 0, 171, 216, 162, 112, 172, 199, 80, 0, 173, 201, 167, 240, 174, 167, 50, 0, 175, 160, 79, 112, 176, 135, 20, 0, 177, 137, 107, 240, 178, 112, 48, 128, 179, 114, 136, 112, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 184, 255, 227, 160, 185, 239, 212, 160, 186, 214, 139, 32, 187, 216, 241, 32, 188, 200, 226, 32, 189, 184, 211, 32, 190, 159, 137, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 104, 136, 32, 195, 88, 121, 32, 196, 63, 47, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 200, 66, 48, 32, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 111, 176, 16, 209, 114, 22, 16, 210, 78, 64, 144, 211, 145, 64, 16, 212, 75, 35, 144, 13, 42, 253, 112, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 2, 1, 2, 1, 2, 3, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 11, 9, 10, 9, 10, 2, 3, 4, 3, 4, 2, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 0, 0, 5, 196, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 1, 13, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 18, 0, 0, 14, 16, 1, 13, 0, 0, 14, 16, 0, 18, 0, 0, 28, 32, 1, 13, 0, 0, 28, 32, 1, 13, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Madrid": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 11, 0, 0, 0, 27, 128, 0, 0, 0, 158, 186, 197, 240, 159, 160, 57, 0, 160, 144, 27, 240, 161, 129, 108, 128, 170, 5, 239, 112, 170, 231, 110, 0, 173, 201, 167, 240, 174, 167, 50, 0, 175, 160, 79, 112, 176, 135, 20, 0, 177, 137, 122, 0, 178, 112, 48, 128, 179, 114, 136, 112, 180, 80, 18, 128, 194, 201, 236, 240, 195, 88, 93, 0, 196, 72, 63, 240, 196, 109, 27, 224, 197, 57, 116, 96, 199, 33, 91, 128, 199, 245, 142, 240, 203, 245, 222, 96, 204, 149, 113, 240, 205, 195, 75, 96, 206, 160, 213, 112, 207, 163, 45, 96, 208, 128, 183, 112, 209, 131, 15, 96, 210, 96, 153, 112, 211, 98, 241, 96, 212, 64, 123, 112, 217, 30, 70, 224, 217, 233, 91, 240, 8, 13, 205, 224, 8, 244, 146, 112, 9, 237, 175, 224, 10, 212, 116, 112, 11, 187, 28, 224, 12, 171, 27, 240, 13, 164, 57, 96, 14, 138, 253, 240, 15, 132, 69, 144, 16, 116, 54, 144, 16, 237, 100, 112, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 2, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 8, 6, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 255, 255, 252, 140, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 0, 0, 28, 32, 1, 13, 0, 0, 0, 0, 0, 9, 0, 0, 28, 32, 1, 18, 0, 0, 14, 16, 0, 23, 0, 0, 28, 32, 1, 18, 0, 0, 14, 16, 0, 23, 0, 0, 28, 32, 1, 18, 0, 0, 14, 16, 0, 23, 76, 77, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 87, 69, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Malta": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 56, 248, 112, 155, 213, 204, 224, 156, 197, 203, 240, 157, 183, 0, 96, 158, 137, 254, 112, 159, 160, 28, 224, 160, 96, 165, 240, 161, 126, 173, 96, 162, 92, 55, 112, 163, 76, 26, 96, 200, 108, 53, 240, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 210, 76, 210, 240, 211, 62, 49, 144, 212, 73, 210, 16, 213, 29, 247, 112, 214, 41, 151, 240, 214, 235, 128, 144, 216, 9, 150, 16, 249, 51, 181, 240, 249, 217, 196, 224, 251, 28, 210, 112, 251, 185, 180, 240, 252, 252, 180, 112, 253, 153, 150, 240, 254, 229, 208, 240, 255, 130, 179, 112, 0, 197, 178, 240, 1, 98, 149, 112, 2, 156, 90, 112, 3, 66, 119, 112, 4, 133, 118, 240, 5, 43, 147, 240, 6, 26, 51, 112, 7, 10, 36, 112, 8, 23, 22, 112, 8, 218, 52, 112, 9, 247, 20, 144, 10, 194, 13, 128, 11, 214, 246, 144, 12, 161, 239, 128, 13, 182, 216, 144, 14, 129, 209, 128, 15, 150, 186, 144, 16, 97, 179, 128, 17, 118, 156, 144, 18, 65, 149, 128, 19, 69, 91, 16, 20, 42, 178, 0, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 1, 2, 4, 3, 4, 3, 4, 3, 4, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 13, 156, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Mariehamn": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 6, 0, 0, 0, 17, 128, 0, 0, 0, 164, 115, 111, 27, 203, 206, 81, 96, 204, 192, 229, 96, 21, 35, 221, 128, 22, 19, 206, 128, 23, 3, 191, 128, 23, 243, 176, 128, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 0, 0, 23, 101, 0, 0, 0, 0, 23, 101, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 76, 77, 84, 0, 72, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Minsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 13, 0, 0, 0, 38, 128, 0, 0, 0, 170, 25, 170, 56, 181, 164, 25, 96, 202, 94, 112, 208, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 10, 2, 96, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 37, 158, 115, 80, 39, 245, 24, 112, 40, 229, 23, 128, 41, 213, 8, 128, 42, 196, 249, 128, 43, 180, 234, 128, 44, 164, 219, 128, 45, 148, 204, 128, 46, 132, 189, 128, 47, 116, 174, 128, 48, 100, 159, 128, 49, 93, 203, 0, 50, 114, 166, 0, 51, 61, 173, 0, 52, 82, 136, 0, 53, 29, 143, 0, 54, 50, 106, 0, 54, 253, 113, 0, 56, 27, 134, 128, 56, 221, 83, 0, 57, 251, 104, 128, 58, 189, 53, 0, 59, 219, 74, 128, 60, 166, 81, 128, 61, 187, 44, 128, 62, 134, 51, 128, 63, 155, 14, 128, 64, 102, 21, 128, 65, 132, 43, 0, 66, 69, 247, 128, 67, 100, 13, 0, 68, 37, 217, 128, 69, 67, 239, 0, 70, 5, 187, 128, 71, 35, 209, 0, 71, 238, 216, 0, 73, 3, 179, 0, 73, 206, 186, 0, 74, 227, 149, 0, 75, 174, 156, 0, 76, 204, 177, 128, 77, 142, 126, 0, 127, 255, 255, 255, 1, 2, 3, 6, 4, 5, 4, 5, 3, 7, 3, 7, 3, 7, 3, 7, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 3, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 12, 12, 0, 0, 25, 216, 0, 0, 0, 0, 25, 200, 0, 4, 0, 0, 28, 32, 0, 8, 0, 0, 42, 48, 0, 12, 0, 0, 14, 16, 0, 16, 0, 0, 28, 32, 1, 20, 0, 0, 28, 32, 1, 20, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 0, 12, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 1, 29, 0, 0, 28, 32, 0, 8, 0, 0, 42, 48, 0, 34, 76, 77, 84, 0, 77, 77, 84, 0, 69, 69, 84, 0, 77, 83, 75, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 69, 69, 83, 84, 0, 43, 48, 51, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Europe/Monaco": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 11, 0, 0, 0, 31, 128, 0, 0, 0, 145, 96, 80, 79, 155, 71, 120, 240, 155, 215, 44, 112, 156, 188, 145, 112, 157, 192, 72, 240, 158, 137, 254, 112, 159, 160, 42, 240, 160, 96, 165, 240, 161, 128, 12, 240, 162, 46, 18, 240, 163, 122, 76, 240, 164, 53, 129, 240, 165, 94, 35, 112, 166, 37, 53, 240, 167, 39, 155, 240, 168, 88, 38, 112, 169, 7, 125, 240, 169, 238, 52, 112, 170, 231, 95, 240, 171, 215, 80, 240, 172, 199, 65, 240, 173, 201, 167, 240, 174, 167, 35, 240, 175, 160, 79, 112, 176, 135, 5, 240, 177, 137, 107, 240, 178, 112, 34, 112, 179, 114, 136, 112, 180, 80, 4, 112, 181, 73, 47, 240, 182, 47, 230, 112, 183, 50, 76, 112, 184, 15, 200, 112, 184, 255, 185, 112, 185, 239, 170, 112, 186, 214, 96, 240, 187, 216, 198, 240, 188, 200, 183, 240, 189, 184, 168, 240, 190, 159, 95, 112, 191, 152, 138, 240, 192, 154, 240, 240, 193, 120, 108, 240, 194, 104, 93, 240, 195, 88, 78, 240, 196, 63, 5, 112, 197, 56, 48, 240, 198, 58, 150, 240, 199, 88, 172, 112, 199, 218, 9, 160, 202, 23, 91, 240, 202, 226, 84, 224, 203, 173, 105, 240, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 137, 241, 240, 209, 114, 22, 16, 210, 78, 64, 144, 11, 187, 57, 0, 12, 171, 27, 240, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 6, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 8, 7, 8, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 0, 0, 6, 236, 0, 0, 0, 0, 2, 49, 0, 4, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 13, 0, 0, 14, 16, 1, 8, 0, 0, 28, 32, 1, 17, 0, 0, 0, 0, 0, 13, 0, 0, 28, 32, 1, 22, 0, 0, 14, 16, 0, 27, 0, 0, 28, 32, 1, 22, 0, 0, 14, 16, 0, 27, 76, 77, 84, 0, 80, 77, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 87, 69, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Moscow": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 17, 0, 0, 0, 38, 128, 0, 0, 0, 155, 95, 30, 199, 157, 62, 242, 121, 158, 42, 238, 249, 158, 247, 57, 105, 159, 132, 87, 249, 160, 216, 108, 233, 161, 0, 57, 128, 161, 60, 166, 64, 164, 16, 109, 192, 164, 61, 50, 176, 165, 21, 104, 176, 165, 61, 3, 192, 167, 30, 69, 80, 181, 164, 25, 96, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 229, 23, 128, 41, 120, 191, 128, 41, 212, 250, 112, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 70, 5, 173, 112, 71, 35, 194, 240, 71, 238, 201, 240, 73, 3, 164, 240, 73, 206, 171, 240, 74, 227, 134, 240, 75, 174, 141, 240, 76, 204, 163, 112, 77, 142, 111, 240, 84, 76, 29, 96, 1, 3, 2, 3, 4, 2, 4, 5, 6, 7, 8, 7, 6, 9, 6, 7, 6, 7, 6, 7, 6, 7, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 12, 13, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 14, 10, 0, 0, 35, 57, 0, 0, 0, 0, 35, 57, 0, 4, 0, 0, 49, 135, 1, 8, 0, 0, 35, 119, 0, 4, 0, 0, 63, 151, 1, 12, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 21, 0, 0, 56, 64, 1, 17, 0, 0, 70, 80, 1, 25, 0, 0, 28, 32, 0, 29, 0, 0, 42, 48, 0, 21, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 1, 33, 0, 0, 28, 32, 0, 29, 0, 0, 56, 64, 0, 21, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 21, 76, 77, 84, 0, 77, 77, 84, 0, 77, 83, 84, 0, 77, 68, 83, 84, 0, 77, 83, 68, 0, 77, 83, 75, 0, 43, 48, 53, 0, 69, 69, 84, 0, 69, 69, 83, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 75, 45, 51, 10},
+
+ "zoneinfo/Europe/Nicosia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 165, 119, 30, 184, 9, 237, 175, 224, 10, 221, 146, 208, 11, 250, 100, 224, 12, 190, 198, 80, 13, 164, 57, 96, 14, 138, 225, 208, 15, 132, 27, 96, 16, 117, 79, 208, 17, 99, 253, 96, 18, 83, 224, 80, 19, 77, 25, 224, 20, 51, 194, 80, 21, 35, 193, 96, 22, 19, 164, 80, 23, 3, 163, 96, 23, 243, 134, 80, 24, 227, 133, 96, 25, 211, 104, 80, 26, 195, 103, 96, 27, 188, 132, 208, 28, 172, 131, 224, 29, 156, 102, 208, 30, 140, 101, 224, 31, 124, 72, 208, 32, 108, 71, 224, 33, 92, 42, 208, 34, 76, 41, 224, 35, 60, 12, 208, 36, 44, 11, 224, 37, 27, 238, 208, 38, 11, 237, 224, 39, 5, 11, 80, 39, 245, 10, 96, 40, 228, 237, 80, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 77, 145, 208, 51, 61, 144, 224, 52, 45, 115, 208, 53, 29, 114, 224, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 31, 72, 0, 0, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 9, 0, 0, 28, 32, 0, 9, 0, 0, 42, 48, 1, 4, 76, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Oslo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 39, 227, 0, 155, 212, 123, 96, 200, 183, 77, 96, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 210, 98, 7, 16, 235, 175, 32, 144, 236, 168, 76, 16, 237, 152, 61, 16, 238, 136, 46, 16, 239, 120, 31, 16, 240, 104, 16, 16, 241, 88, 1, 16, 242, 71, 242, 16, 243, 55, 227, 16, 244, 39, 212, 16, 245, 23, 197, 16, 246, 16, 240, 144, 247, 47, 6, 16, 247, 240, 210, 144, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 10, 20, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Paris": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 13, 0, 0, 0, 31, 128, 0, 0, 0, 145, 96, 80, 139, 155, 71, 120, 240, 155, 215, 44, 112, 156, 188, 145, 112, 157, 192, 72, 240, 158, 137, 254, 112, 159, 160, 42, 240, 160, 96, 165, 240, 161, 128, 12, 240, 162, 46, 18, 240, 163, 122, 76, 240, 164, 53, 129, 240, 165, 94, 35, 112, 166, 37, 53, 240, 167, 39, 155, 240, 168, 88, 38, 112, 169, 7, 125, 240, 169, 238, 52, 112, 170, 231, 95, 240, 171, 215, 80, 240, 172, 199, 65, 240, 173, 201, 167, 240, 174, 167, 35, 240, 175, 160, 79, 112, 176, 135, 5, 240, 177, 137, 107, 240, 178, 112, 34, 112, 179, 114, 136, 112, 180, 80, 4, 112, 181, 73, 47, 240, 182, 47, 230, 112, 183, 50, 76, 112, 184, 15, 200, 112, 184, 255, 185, 112, 185, 239, 170, 112, 186, 214, 96, 240, 187, 216, 198, 240, 188, 200, 183, 240, 189, 184, 168, 240, 190, 159, 95, 112, 191, 152, 138, 240, 192, 154, 240, 240, 193, 120, 108, 240, 194, 104, 93, 240, 195, 88, 78, 240, 196, 63, 5, 112, 197, 56, 48, 240, 198, 58, 150, 240, 199, 88, 172, 112, 199, 218, 9, 160, 200, 108, 39, 224, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 79, 225, 224, 208, 137, 241, 240, 209, 114, 22, 16, 210, 78, 64, 144, 11, 187, 57, 0, 12, 171, 27, 240, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 8, 6, 7, 6, 7, 9, 4, 9, 10, 8, 10, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 0, 0, 2, 49, 0, 0, 0, 0, 2, 49, 0, 4, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 13, 0, 0, 14, 16, 1, 8, 0, 0, 0, 0, 0, 13, 0, 0, 14, 16, 0, 17, 0, 0, 28, 32, 1, 21, 0, 0, 28, 32, 1, 21, 0, 0, 28, 32, 1, 26, 0, 0, 14, 16, 0, 17, 0, 0, 28, 32, 1, 21, 0, 0, 14, 16, 0, 17, 76, 77, 84, 0, 80, 77, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 87, 69, 77, 84, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Podgorica": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 202, 2, 53, 224, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 161, 140, 16, 210, 78, 64, 144, 24, 69, 95, 112, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 4, 2, 3, 2, 3, 2, 1, 3, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 19, 56, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Prague": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 110, 94, 144, 209, 121, 255, 16, 210, 161, 79, 16, 211, 128, 28, 144, 212, 73, 210, 16, 213, 76, 56, 16, 214, 41, 180, 16, 215, 44, 26, 16, 216, 9, 150, 16, 217, 1, 112, 16, 217, 233, 120, 16, 16, 237, 100, 112, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 13, 136, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 80, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Riga": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 15, 0, 0, 0, 38, 128, 0, 0, 0, 158, 185, 135, 254, 159, 132, 142, 254, 160, 136, 70, 126, 160, 203, 130, 254, 173, 231, 241, 222, 200, 175, 100, 96, 202, 98, 101, 80, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 144, 137, 112, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 25, 0, 38, 12, 10, 0, 39, 5, 53, 128, 39, 245, 38, 128, 40, 229, 23, 128, 41, 213, 8, 128, 42, 196, 249, 128, 43, 180, 234, 128, 44, 164, 219, 128, 45, 148, 204, 128, 46, 132, 189, 128, 47, 116, 174, 128, 48, 100, 159, 128, 49, 93, 203, 0, 50, 77, 188, 0, 50, 227, 234, 224, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 186, 239, 224, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 1, 2, 1, 3, 4, 7, 5, 6, 5, 6, 5, 4, 8, 4, 8, 4, 8, 4, 8, 9, 10, 9, 10, 9, 10, 9, 10, 9, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 3, 13, 14, 13, 14, 13, 14, 3, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 0, 0, 22, 162, 0, 0, 0, 0, 22, 162, 0, 4, 0, 0, 36, 178, 1, 8, 0, 0, 28, 32, 0, 12, 0, 0, 42, 48, 0, 16, 0, 0, 14, 16, 0, 20, 0, 0, 28, 32, 1, 24, 0, 0, 28, 32, 1, 24, 0, 0, 56, 64, 1, 29, 0, 0, 42, 48, 0, 16, 0, 0, 56, 64, 1, 29, 0, 0, 42, 48, 1, 33, 0, 0, 28, 32, 0, 12, 0, 0, 42, 48, 1, 33, 0, 0, 28, 32, 0, 12, 76, 77, 84, 0, 82, 77, 84, 0, 76, 83, 84, 0, 69, 69, 84, 0, 77, 83, 75, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 69, 69, 83, 84, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Rome": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 56, 248, 112, 155, 213, 204, 224, 156, 197, 203, 240, 157, 183, 0, 96, 158, 137, 254, 112, 159, 160, 28, 224, 160, 96, 165, 240, 161, 126, 173, 96, 162, 92, 55, 112, 163, 76, 26, 96, 200, 108, 53, 240, 204, 231, 75, 16, 205, 169, 23, 144, 206, 130, 116, 224, 206, 162, 67, 16, 207, 146, 52, 16, 207, 227, 198, 224, 208, 110, 94, 144, 209, 114, 22, 16, 210, 76, 210, 240, 211, 62, 49, 144, 212, 73, 210, 16, 213, 29, 247, 112, 214, 41, 151, 240, 214, 235, 128, 144, 216, 9, 150, 16, 249, 51, 181, 240, 249, 217, 196, 224, 251, 28, 210, 112, 251, 185, 180, 240, 252, 252, 180, 112, 253, 153, 150, 240, 254, 229, 208, 240, 255, 130, 179, 112, 0, 197, 178, 240, 1, 98, 149, 112, 2, 156, 90, 112, 3, 66, 119, 112, 4, 133, 118, 240, 5, 43, 147, 240, 6, 110, 147, 112, 7, 11, 117, 240, 8, 69, 58, 240, 8, 235, 87, 240, 10, 46, 87, 112, 10, 203, 57, 240, 12, 14, 57, 112, 12, 171, 27, 240, 13, 228, 224, 240, 14, 138, 253, 240, 15, 205, 253, 112, 16, 116, 26, 112, 17, 173, 223, 112, 18, 83, 252, 112, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 1, 3, 4, 1, 3, 1, 2, 4, 3, 4, 3, 4, 3, 4, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 11, 180, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 82, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Samara": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 12, 0, 0, 0, 20, 128, 0, 0, 0, 161, 0, 57, 128, 181, 164, 11, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 229, 23, 128, 41, 0, 199, 0, 41, 212, 236, 96, 42, 196, 221, 96, 43, 180, 206, 96, 44, 164, 191, 96, 45, 148, 176, 96, 46, 132, 161, 96, 47, 116, 146, 96, 48, 100, 131, 96, 49, 93, 174, 224, 50, 114, 137, 224, 51, 61, 144, 224, 52, 82, 107, 224, 53, 29, 114, 224, 54, 50, 77, 224, 54, 253, 84, 224, 56, 27, 106, 96, 56, 221, 54, 224, 57, 251, 76, 96, 58, 189, 24, 224, 59, 219, 46, 96, 60, 166, 53, 96, 61, 187, 16, 96, 62, 134, 23, 96, 63, 154, 242, 96, 64, 101, 249, 96, 65, 132, 14, 224, 66, 69, 219, 96, 67, 99, 240, 224, 68, 37, 189, 96, 69, 67, 210, 224, 70, 5, 159, 96, 71, 35, 180, 224, 71, 238, 187, 224, 73, 3, 150, 224, 73, 206, 157, 224, 74, 227, 120, 224, 75, 174, 127, 224, 76, 204, 163, 112, 77, 142, 111, 240, 127, 255, 255, 255, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 8, 7, 2, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 4, 4, 0, 0, 46, 244, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 56, 64, 0, 8, 0, 0, 70, 80, 1, 12, 0, 0, 56, 64, 0, 8, 0, 0, 70, 80, 1, 12, 0, 0, 56, 64, 1, 8, 0, 0, 42, 48, 0, 4, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 16, 0, 0, 56, 64, 1, 8, 0, 0, 56, 64, 0, 8, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 52, 0, 43, 48, 53, 0, 43, 48, 50, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Europe/San_Marino": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 56, 248, 112, 155, 213, 204, 224, 156, 197, 203, 240, 157, 183, 0, 96, 158, 137, 254, 112, 159, 160, 28, 224, 160, 96, 165, 240, 161, 126, 173, 96, 162, 92, 55, 112, 163, 76, 26, 96, 200, 108, 53, 240, 204, 231, 75, 16, 205, 169, 23, 144, 206, 130, 116, 224, 206, 162, 67, 16, 207, 146, 52, 16, 207, 227, 198, 224, 208, 110, 94, 144, 209, 114, 22, 16, 210, 76, 210, 240, 211, 62, 49, 144, 212, 73, 210, 16, 213, 29, 247, 112, 214, 41, 151, 240, 214, 235, 128, 144, 216, 9, 150, 16, 249, 51, 181, 240, 249, 217, 196, 224, 251, 28, 210, 112, 251, 185, 180, 240, 252, 252, 180, 112, 253, 153, 150, 240, 254, 229, 208, 240, 255, 130, 179, 112, 0, 197, 178, 240, 1, 98, 149, 112, 2, 156, 90, 112, 3, 66, 119, 112, 4, 133, 118, 240, 5, 43, 147, 240, 6, 110, 147, 112, 7, 11, 117, 240, 8, 69, 58, 240, 8, 235, 87, 240, 10, 46, 87, 112, 10, 203, 57, 240, 12, 14, 57, 112, 12, 171, 27, 240, 13, 228, 224, 240, 14, 138, 253, 240, 15, 205, 253, 112, 16, 116, 26, 112, 17, 173, 223, 112, 18, 83, 252, 112, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 1, 3, 4, 1, 3, 1, 2, 4, 3, 4, 3, 4, 3, 4, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 11, 180, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 82, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Sarajevo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 202, 2, 53, 224, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 161, 140, 16, 210, 78, 64, 144, 24, 69, 95, 112, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 4, 2, 3, 2, 3, 2, 1, 3, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 19, 56, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Saratov": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 9, 0, 0, 0, 16, 128, 0, 0, 0, 161, 0, 57, 128, 181, 164, 11, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 41, 212, 236, 96, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 70, 5, 173, 112, 71, 35, 194, 240, 71, 238, 201, 240, 73, 3, 164, 240, 73, 206, 171, 240, 74, 227, 134, 240, 75, 174, 141, 240, 76, 204, 163, 112, 77, 142, 111, 240, 84, 76, 29, 96, 88, 67, 78, 112, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 6, 7, 4, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 4, 0, 0, 43, 50, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 0, 0, 56, 64, 0, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 1, 12, 0, 0, 42, 48, 0, 4, 0, 0, 56, 64, 0, 12, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 52, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Europe/Simferopol": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 15, 0, 0, 0, 34, 128, 0, 0, 0, 170, 25, 164, 32, 181, 164, 25, 96, 203, 4, 141, 208, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 207, 159, 56, 224, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 37, 158, 115, 80, 38, 141, 46, 240, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 45, 194, 198, 208, 46, 132, 133, 64, 47, 116, 132, 80, 48, 100, 103, 64, 49, 93, 160, 208, 50, 114, 166, 0, 50, 201, 126, 208, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 94, 128, 84, 76, 29, 96, 1, 2, 3, 6, 4, 5, 4, 5, 3, 7, 3, 7, 3, 7, 3, 7, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 3, 2, 10, 2, 10, 2, 10, 7, 3, 7, 3, 9, 8, 3, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 13, 8, 0, 0, 31, 248, 0, 0, 0, 0, 31, 224, 0, 4, 0, 0, 28, 32, 0, 8, 0, 0, 42, 48, 0, 12, 0, 0, 14, 16, 0, 16, 0, 0, 28, 32, 1, 20, 0, 0, 28, 32, 1, 20, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 0, 12, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 1, 29, 0, 0, 42, 48, 1, 29, 0, 0, 28, 32, 0, 8, 0, 0, 56, 64, 0, 12, 0, 0, 42, 48, 0, 12, 76, 77, 84, 0, 83, 77, 84, 0, 69, 69, 84, 0, 77, 83, 75, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 69, 69, 83, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 10, 77, 83, 75, 45, 51, 10},
+
+ "zoneinfo/Europe/Skopje": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 202, 2, 53, 224, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 161, 140, 16, 210, 78, 64, 144, 24, 69, 95, 112, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 4, 2, 3, 2, 3, 2, 1, 3, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 19, 56, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Sofia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 10, 0, 0, 0, 22, 128, 0, 0, 0, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 114, 36, 32, 17, 99, 239, 80, 18, 85, 63, 224, 19, 77, 11, 208, 20, 53, 33, 224, 21, 44, 237, 208, 22, 19, 192, 112, 23, 12, 207, 208, 23, 243, 176, 128, 24, 227, 161, 128, 25, 211, 146, 128, 26, 195, 131, 128, 27, 188, 175, 0, 28, 172, 160, 0, 29, 156, 145, 0, 30, 140, 130, 0, 31, 124, 115, 0, 32, 108, 100, 0, 33, 92, 85, 0, 34, 76, 70, 0, 35, 60, 55, 0, 36, 44, 40, 0, 37, 28, 25, 0, 38, 12, 10, 0, 39, 5, 53, 128, 39, 127, 180, 224, 39, 245, 10, 96, 40, 228, 237, 80, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 114, 123, 208, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 3, 2, 3, 2, 4, 1, 5, 1, 5, 1, 5, 1, 5, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 0, 0, 27, 104, 0, 0, 0, 0, 28, 32, 0, 4, 0, 0, 14, 16, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 8, 0, 0, 42, 48, 1, 17, 0, 0, 28, 32, 0, 4, 0, 0, 42, 48, 1, 17, 0, 0, 42, 48, 1, 17, 0, 0, 28, 32, 0, 4, 73, 77, 84, 0, 69, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 69, 69, 83, 84, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Stockholm": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 155, 30, 140, 96, 155, 213, 218, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 14, 30, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 83, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Tallinn": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 16, 0, 0, 0, 34, 128, 0, 0, 0, 158, 89, 45, 204, 158, 185, 144, 144, 159, 132, 151, 144, 161, 0, 43, 112, 164, 115, 111, 76, 200, 176, 181, 224, 202, 198, 151, 80, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 116, 203, 224, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 25, 0, 38, 12, 10, 0, 39, 5, 53, 128, 39, 245, 38, 128, 40, 229, 23, 128, 41, 213, 8, 128, 42, 196, 249, 128, 43, 180, 234, 128, 44, 164, 219, 128, 45, 148, 204, 128, 46, 132, 189, 128, 47, 116, 174, 128, 48, 100, 159, 128, 49, 93, 203, 0, 50, 114, 166, 0, 51, 61, 173, 0, 52, 82, 136, 0, 53, 29, 143, 0, 54, 6, 190, 80, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 4, 2, 3, 1, 5, 6, 7, 3, 2, 3, 2, 6, 8, 6, 8, 6, 8, 6, 8, 9, 10, 9, 10, 9, 10, 9, 10, 9, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 15, 13, 14, 5, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 13, 0, 0, 23, 52, 0, 0, 0, 0, 23, 52, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 0, 0, 14, 16, 0, 13, 0, 0, 28, 32, 0, 17, 0, 0, 42, 48, 0, 21, 0, 0, 28, 32, 1, 8, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 0, 21, 0, 0, 56, 64, 1, 25, 0, 0, 42, 48, 1, 29, 0, 0, 28, 32, 0, 17, 0, 0, 28, 32, 0, 17, 0, 0, 42, 48, 1, 29, 0, 0, 42, 48, 1, 29, 76, 77, 84, 0, 84, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 69, 69, 84, 0, 77, 83, 75, 0, 77, 83, 68, 0, 69, 69, 83, 84, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Tirane": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 150, 170, 52, 104, 200, 109, 135, 112, 204, 231, 75, 16, 205, 169, 23, 144, 205, 184, 233, 144, 8, 40, 57, 240, 8, 239, 62, 96, 10, 5, 120, 240, 10, 208, 113, 224, 11, 233, 79, 112, 12, 180, 72, 96, 13, 210, 107, 240, 14, 148, 42, 96, 15, 176, 252, 112, 16, 116, 12, 96, 17, 144, 222, 112, 18, 83, 238, 96, 19, 112, 192, 112, 20, 59, 185, 96, 21, 72, 185, 112, 22, 19, 178, 96, 23, 49, 213, 240, 23, 252, 206, 224, 25, 0, 148, 112, 25, 219, 95, 96, 26, 204, 175, 240, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 0, 0, 18, 152, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Tiraspol": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 16, 0, 0, 0, 38, 128, 0, 0, 0, 158, 107, 159, 12, 183, 176, 210, 8, 185, 62, 243, 96, 185, 239, 156, 96, 186, 223, 141, 96, 187, 207, 126, 96, 188, 200, 169, 224, 189, 184, 154, 224, 190, 168, 139, 224, 191, 152, 124, 224, 192, 136, 109, 224, 193, 120, 94, 224, 194, 104, 79, 224, 195, 88, 64, 224, 196, 72, 49, 224, 197, 56, 34, 224, 198, 40, 19, 224, 199, 24, 4, 224, 200, 188, 147, 96, 202, 119, 125, 80, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 78, 144, 96, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 38, 67, 76, 224, 39, 5, 53, 128, 39, 245, 38, 128, 40, 229, 23, 128, 41, 96, 232, 96, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 146, 96, 48, 100, 117, 80, 49, 93, 174, 224, 50, 114, 123, 208, 51, 61, 173, 0, 52, 82, 136, 0, 53, 29, 143, 0, 54, 50, 106, 0, 54, 253, 113, 0, 56, 27, 134, 128, 56, 221, 83, 0, 57, 251, 104, 128, 58, 189, 53, 0, 59, 219, 74, 128, 60, 166, 81, 128, 61, 187, 44, 128, 62, 134, 51, 128, 63, 155, 14, 128, 64, 102, 21, 128, 65, 132, 43, 0, 66, 69, 247, 128, 67, 100, 13, 0, 68, 37, 217, 128, 69, 67, 239, 0, 70, 5, 187, 128, 71, 35, 209, 0, 71, 238, 216, 0, 73, 3, 179, 0, 73, 206, 186, 0, 74, 227, 149, 0, 75, 174, 156, 0, 76, 204, 177, 128, 77, 142, 126, 0, 78, 172, 147, 128, 79, 110, 96, 0, 80, 140, 117, 128, 81, 87, 124, 128, 82, 108, 87, 128, 83, 55, 94, 128, 84, 76, 57, 128, 85, 23, 64, 128, 86, 44, 27, 128, 86, 247, 34, 128, 88, 21, 56, 0, 88, 215, 4, 128, 89, 245, 26, 0, 90, 182, 230, 128, 91, 212, 252, 0, 92, 160, 3, 0, 93, 180, 222, 0, 94, 127, 229, 0, 95, 148, 192, 0, 96, 95, 199, 0, 97, 125, 220, 128, 98, 63, 169, 0, 99, 93, 190, 128, 100, 31, 139, 0, 101, 61, 160, 128, 102, 8, 167, 128, 103, 29, 130, 128, 103, 232, 137, 128, 104, 253, 100, 128, 105, 200, 107, 128, 106, 221, 70, 128, 107, 168, 77, 128, 108, 198, 99, 0, 109, 136, 47, 128, 110, 166, 69, 0, 111, 104, 17, 128, 112, 134, 39, 0, 113, 81, 46, 0, 114, 102, 9, 0, 115, 49, 16, 0, 116, 69, 235, 0, 117, 16, 242, 0, 118, 47, 7, 128, 118, 240, 212, 0, 120, 14, 233, 128, 120, 208, 182, 0, 121, 238, 203, 128, 122, 176, 152, 0, 123, 206, 173, 128, 124, 153, 180, 128, 125, 174, 143, 128, 126, 121, 150, 128, 127, 142, 113, 128, 1, 2, 5, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 9, 7, 8, 7, 8, 11, 10, 11, 10, 11, 10, 11, 10, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 6, 4, 3, 4, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 0, 0, 27, 8, 0, 0, 0, 0, 26, 244, 0, 4, 0, 0, 24, 120, 0, 8, 0, 0, 42, 48, 1, 12, 0, 0, 28, 32, 0, 17, 0, 0, 28, 32, 0, 17, 0, 0, 42, 48, 1, 12, 0, 0, 14, 16, 0, 21, 0, 0, 28, 32, 1, 25, 0, 0, 28, 32, 1, 25, 0, 0, 56, 64, 1, 30, 0, 0, 42, 48, 0, 34, 0, 0, 42, 48, 0, 34, 0, 0, 56, 64, 1, 30, 0, 0, 42, 48, 1, 12, 0, 0, 28, 32, 0, 17, 76, 77, 84, 0, 67, 77, 84, 0, 66, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 77, 83, 75, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Ulyanovsk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 12, 0, 0, 0, 20, 128, 0, 0, 0, 161, 0, 57, 128, 181, 164, 11, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 26, 224, 36, 44, 11, 224, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 229, 23, 128, 41, 120, 191, 128, 41, 212, 250, 112, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 70, 5, 173, 112, 71, 35, 194, 240, 71, 238, 201, 240, 73, 3, 164, 240, 73, 206, 171, 240, 74, 227, 134, 240, 75, 174, 141, 240, 76, 204, 163, 112, 77, 142, 111, 240, 84, 76, 29, 96, 86, 247, 20, 112, 127, 255, 255, 255, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 8, 9, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 4, 0, 0, 45, 96, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 0, 12, 0, 0, 56, 64, 0, 12, 0, 0, 70, 80, 1, 8, 0, 0, 56, 64, 1, 12, 0, 0, 42, 48, 0, 4, 0, 0, 42, 48, 1, 4, 0, 0, 28, 32, 0, 16, 0, 0, 56, 64, 1, 12, 0, 0, 56, 64, 0, 12, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 53, 0, 43, 48, 52, 0, 43, 48, 50, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Europe/Uzhgorod": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 13, 0, 0, 0, 30, 128, 0, 0, 0, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 128, 169, 96, 208, 161, 158, 224, 209, 229, 253, 240, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 37, 158, 115, 80, 38, 141, 46, 240, 39, 245, 66, 160, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 3, 2, 3, 2, 4, 1, 6, 5, 6, 5, 6, 5, 6, 5, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 6, 1, 9, 10, 9, 10, 9, 10, 9, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 0, 0, 20, 232, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 56, 64, 1, 13, 0, 0, 42, 48, 0, 17, 0, 0, 42, 48, 0, 17, 0, 0, 56, 64, 1, 13, 0, 0, 28, 32, 0, 21, 0, 0, 42, 48, 1, 25, 0, 0, 42, 48, 1, 25, 0, 0, 28, 32, 0, 21, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 77, 83, 75, 0, 69, 69, 84, 0, 69, 69, 83, 84, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Vaduz": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 202, 23, 106, 0, 202, 226, 113, 0, 203, 247, 76, 0, 204, 194, 83, 0, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 6, 250, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 66, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Vatican": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 56, 248, 112, 155, 213, 204, 224, 156, 197, 203, 240, 157, 183, 0, 96, 158, 137, 254, 112, 159, 160, 28, 224, 160, 96, 165, 240, 161, 126, 173, 96, 162, 92, 55, 112, 163, 76, 26, 96, 200, 108, 53, 240, 204, 231, 75, 16, 205, 169, 23, 144, 206, 130, 116, 224, 206, 162, 67, 16, 207, 146, 52, 16, 207, 227, 198, 224, 208, 110, 94, 144, 209, 114, 22, 16, 210, 76, 210, 240, 211, 62, 49, 144, 212, 73, 210, 16, 213, 29, 247, 112, 214, 41, 151, 240, 214, 235, 128, 144, 216, 9, 150, 16, 249, 51, 181, 240, 249, 217, 196, 224, 251, 28, 210, 112, 251, 185, 180, 240, 252, 252, 180, 112, 253, 153, 150, 240, 254, 229, 208, 240, 255, 130, 179, 112, 0, 197, 178, 240, 1, 98, 149, 112, 2, 156, 90, 112, 3, 66, 119, 112, 4, 133, 118, 240, 5, 43, 147, 240, 6, 110, 147, 112, 7, 11, 117, 240, 8, 69, 58, 240, 8, 235, 87, 240, 10, 46, 87, 112, 10, 203, 57, 240, 12, 14, 57, 112, 12, 171, 27, 240, 13, 228, 224, 240, 14, 138, 253, 240, 15, 205, 253, 112, 16, 116, 26, 112, 17, 173, 223, 112, 18, 83, 252, 112, 18, 206, 151, 240, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 1, 3, 4, 1, 3, 1, 2, 4, 3, 4, 3, 4, 3, 4, 2, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 11, 180, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 82, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Vienna": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 161, 242, 191, 112, 162, 112, 26, 16, 163, 68, 91, 144, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 209, 127, 69, 16, 210, 219, 52, 240, 211, 99, 27, 144, 212, 73, 210, 16, 213, 57, 195, 16, 214, 41, 180, 16, 215, 44, 26, 16, 216, 9, 150, 16, 19, 77, 39, 240, 20, 51, 208, 96, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 3, 4, 3, 4, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 2, 3, 4, 3, 4, 3, 4, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 15, 81, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Vilnius": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 18, 0, 0, 0, 38, 128, 0, 0, 0, 156, 79, 31, 80, 161, 133, 74, 152, 162, 241, 48, 240, 163, 102, 120, 96, 200, 172, 207, 112, 202, 89, 42, 208, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 48, 61, 224, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 25, 0, 38, 12, 10, 0, 39, 5, 53, 128, 39, 245, 38, 128, 40, 229, 23, 128, 41, 213, 8, 128, 42, 196, 249, 128, 43, 180, 234, 128, 44, 164, 219, 128, 45, 148, 204, 128, 46, 132, 189, 128, 47, 116, 174, 128, 48, 100, 159, 128, 49, 93, 203, 0, 50, 114, 166, 0, 51, 61, 173, 0, 52, 82, 136, 0, 52, 170, 192, 96, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 62, 18, 19, 96, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 3, 4, 3, 5, 8, 6, 7, 6, 7, 5, 9, 5, 9, 5, 9, 5, 9, 10, 11, 10, 11, 10, 11, 10, 11, 10, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 4, 14, 15, 14, 16, 4, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 17, 16, 0, 0, 23, 188, 0, 0, 0, 0, 19, 176, 0, 4, 0, 0, 22, 104, 0, 8, 0, 0, 14, 16, 0, 12, 0, 0, 28, 32, 0, 16, 0, 0, 42, 48, 0, 20, 0, 0, 14, 16, 0, 12, 0, 0, 28, 32, 1, 24, 0, 0, 28, 32, 1, 24, 0, 0, 56, 64, 1, 29, 0, 0, 42, 48, 0, 20, 0, 0, 56, 64, 1, 29, 0, 0, 42, 48, 1, 33, 0, 0, 28, 32, 0, 16, 0, 0, 28, 32, 1, 24, 0, 0, 14, 16, 0, 12, 0, 0, 28, 32, 0, 16, 0, 0, 42, 48, 1, 33, 76, 77, 84, 0, 87, 77, 84, 0, 75, 77, 84, 0, 67, 69, 84, 0, 69, 69, 84, 0, 77, 83, 75, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 69, 69, 83, 84, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Volgograd": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 8, 0, 0, 0, 16, 128, 0, 0, 0, 161, 245, 70, 220, 181, 164, 11, 80, 21, 39, 153, 192, 22, 24, 206, 48, 23, 8, 205, 64, 23, 250, 1, 176, 24, 234, 0, 192, 25, 219, 53, 48, 26, 204, 133, 192, 27, 188, 146, 224, 28, 172, 131, 224, 29, 156, 116, 224, 30, 140, 101, 224, 31, 124, 86, 224, 32, 108, 71, 224, 33, 92, 56, 224, 34, 76, 41, 224, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 41, 212, 236, 96, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 70, 5, 173, 112, 71, 35, 194, 240, 71, 238, 201, 240, 73, 3, 164, 240, 73, 206, 171, 240, 74, 227, 134, 240, 75, 174, 141, 240, 76, 204, 163, 112, 77, 142, 111, 240, 84, 76, 29, 96, 127, 255, 255, 255, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 6, 7, 6, 7, 6, 7, 4, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 7, 0, 0, 41, 164, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 56, 64, 0, 8, 0, 0, 70, 80, 1, 12, 0, 0, 56, 64, 0, 8, 0, 0, 70, 80, 1, 12, 0, 0, 56, 64, 1, 8, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 43, 48, 51, 0, 43, 48, 52, 0, 43, 48, 53, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/Europe/Warsaw": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 11, 0, 0, 0, 26, 128, 0, 0, 0, 153, 168, 42, 208, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 160, 154, 182, 0, 161, 101, 189, 0, 166, 125, 124, 96, 200, 118, 222, 16, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 128, 169, 96, 208, 132, 186, 0, 209, 149, 146, 112, 210, 138, 187, 96, 211, 98, 255, 112, 212, 75, 35, 144, 213, 94, 173, 16, 214, 41, 180, 16, 215, 44, 26, 16, 216, 9, 150, 16, 217, 2, 193, 144, 217, 233, 120, 16, 232, 84, 210, 0, 232, 241, 180, 128, 233, 225, 165, 128, 234, 209, 150, 128, 236, 20, 150, 0, 236, 186, 179, 0, 237, 170, 164, 0, 238, 154, 149, 0, 239, 212, 90, 0, 240, 122, 119, 0, 241, 180, 60, 0, 242, 90, 89, 0, 243, 148, 30, 0, 244, 58, 59, 0, 245, 125, 58, 128, 246, 26, 29, 0, 13, 42, 253, 112, 13, 164, 85, 128, 14, 139, 12, 0, 15, 132, 55, 128, 16, 116, 40, 128, 17, 100, 25, 128, 18, 84, 10, 128, 19, 77, 54, 0, 20, 51, 236, 128, 21, 35, 221, 128, 22, 19, 206, 128, 23, 3, 191, 128, 23, 243, 176, 128, 24, 227, 161, 128, 25, 211, 146, 128, 26, 195, 131, 128, 27, 188, 175, 0, 28, 172, 160, 0, 29, 156, 145, 0, 30, 140, 130, 0, 31, 124, 115, 0, 32, 108, 100, 0, 33, 92, 85, 0, 33, 218, 214, 240, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 3, 2, 3, 4, 5, 4, 8, 6, 7, 3, 2, 5, 4, 5, 4, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 0, 0, 19, 176, 0, 0, 0, 0, 19, 176, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 0, 0, 42, 48, 1, 17, 0, 0, 28, 32, 0, 22, 0, 0, 28, 32, 0, 22, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 76, 77, 84, 0, 87, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Zagreb": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 7, 0, 0, 0, 13, 128, 0, 0, 0, 202, 2, 53, 224, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 208, 250, 1, 112, 209, 161, 140, 16, 210, 78, 64, 144, 24, 69, 95, 112, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 4, 2, 3, 2, 3, 2, 1, 3, 2, 1, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 0, 0, 19, 56, 0, 0, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 4, 76, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Europe/Zaporozhye": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 13, 0, 0, 0, 36, 128, 0, 0, 0, 170, 25, 163, 48, 181, 164, 25, 96, 202, 170, 231, 208, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 206, 189, 214, 112, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 228, 237, 80, 41, 212, 236, 96, 42, 196, 207, 80, 43, 180, 206, 96, 44, 164, 177, 80, 45, 148, 176, 96, 46, 132, 147, 80, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 2, 3, 6, 4, 5, 4, 3, 7, 3, 7, 3, 7, 3, 7, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 10, 2, 10, 2, 10, 2, 10, 2, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 11, 12, 0, 0, 32, 248, 0, 0, 0, 0, 32, 208, 0, 4, 0, 0, 28, 32, 0, 10, 0, 0, 42, 48, 0, 14, 0, 0, 14, 16, 0, 18, 0, 0, 28, 32, 1, 22, 0, 0, 28, 32, 1, 22, 0, 0, 56, 64, 1, 27, 0, 0, 42, 48, 0, 14, 0, 0, 56, 64, 1, 27, 0, 0, 42, 48, 1, 31, 0, 0, 42, 48, 1, 31, 0, 0, 28, 32, 0, 10, 76, 77, 84, 0, 43, 48, 50, 50, 48, 0, 69, 69, 84, 0, 77, 83, 75, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 77, 83, 68, 0, 69, 69, 83, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 69, 69, 84, 45, 50, 69, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 51, 44, 77, 49, 48, 46, 53, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Europe/Zurich": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 13, 128, 0, 0, 0, 202, 23, 106, 0, 202, 226, 113, 0, 203, 247, 76, 0, 204, 194, 83, 0, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 0, 0, 6, 250, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 66, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Factory": []byte{84, 90, 105, 102, 50, 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, 2, 0, 0, 0, 1, 0, 0, 0, 4, 128, 0, 0, 0, 127, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 45, 48, 48, 0, 0, 0, 10, 60, 45, 48, 48, 62, 48, 10},
+
+ "zoneinfo/GB": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 6, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 255, 181, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 71, 77, 84, 48, 66, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/GB-Eire": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 8, 0, 0, 0, 17, 128, 0, 0, 0, 155, 38, 173, 160, 155, 214, 5, 32, 156, 207, 48, 160, 157, 164, 195, 160, 158, 156, 157, 160, 159, 151, 26, 160, 160, 133, 186, 32, 161, 118, 252, 160, 162, 101, 156, 32, 163, 123, 200, 160, 164, 78, 184, 160, 165, 63, 251, 32, 166, 37, 96, 32, 167, 39, 198, 32, 168, 42, 44, 32, 168, 235, 248, 160, 170, 0, 211, 160, 170, 213, 21, 32, 171, 233, 240, 32, 172, 199, 108, 32, 173, 201, 210, 32, 174, 167, 78, 32, 175, 160, 121, 160, 176, 135, 48, 32, 177, 146, 208, 160, 178, 112, 76, 160, 179, 114, 178, 160, 180, 80, 46, 160, 181, 73, 90, 32, 182, 48, 16, 160, 183, 50, 118, 160, 184, 15, 242, 160, 185, 18, 88, 160, 185, 239, 212, 160, 186, 233, 0, 32, 187, 216, 241, 32, 188, 219, 87, 32, 189, 184, 211, 32, 190, 177, 254, 160, 191, 152, 181, 32, 192, 155, 27, 32, 193, 120, 151, 32, 194, 122, 253, 32, 195, 88, 121, 32, 196, 81, 164, 160, 197, 56, 91, 32, 198, 58, 193, 32, 199, 88, 214, 160, 199, 218, 9, 160, 202, 22, 38, 144, 202, 151, 89, 144, 203, 209, 30, 144, 204, 119, 59, 144, 205, 177, 0, 144, 206, 96, 88, 16, 207, 144, 226, 144, 208, 110, 94, 144, 209, 114, 22, 16, 209, 251, 50, 16, 210, 105, 254, 32, 211, 99, 41, 160, 212, 73, 224, 32, 213, 30, 33, 160, 213, 66, 253, 144, 213, 223, 224, 16, 214, 78, 172, 32, 214, 254, 3, 160, 216, 46, 142, 32, 216, 249, 149, 32, 218, 14, 112, 32, 218, 235, 236, 32, 219, 229, 23, 160, 220, 203, 206, 32, 221, 196, 249, 160, 222, 180, 234, 160, 223, 174, 22, 32, 224, 148, 204, 160, 225, 114, 72, 160, 226, 107, 116, 32, 227, 82, 42, 160, 228, 84, 144, 160, 229, 50, 12, 160, 230, 61, 173, 32, 231, 27, 41, 32, 232, 20, 84, 160, 232, 251, 11, 32, 233, 253, 113, 32, 234, 218, 237, 32, 235, 221, 83, 32, 236, 186, 207, 32, 237, 179, 250, 160, 238, 154, 177, 32, 239, 129, 103, 160, 240, 159, 125, 32, 241, 97, 73, 160, 242, 127, 95, 32, 243, 74, 102, 32, 244, 95, 65, 32, 245, 33, 13, 160, 246, 63, 35, 32, 247, 0, 239, 160, 248, 31, 5, 32, 248, 224, 209, 160, 249, 254, 231, 32, 250, 192, 179, 160, 251, 232, 3, 160, 252, 123, 171, 160, 253, 199, 187, 112, 3, 112, 198, 32, 4, 41, 88, 32, 5, 80, 168, 32, 6, 9, 58, 32, 7, 48, 138, 32, 7, 233, 28, 32, 9, 16, 108, 32, 9, 200, 254, 32, 10, 240, 78, 32, 11, 178, 26, 160, 12, 208, 48, 32, 13, 145, 252, 160, 14, 176, 18, 32, 15, 113, 222, 160, 16, 153, 46, 160, 17, 81, 192, 160, 18, 121, 16, 160, 19, 49, 162, 160, 20, 88, 242, 160, 21, 35, 235, 144, 22, 56, 198, 144, 23, 3, 205, 144, 24, 24, 168, 144, 24, 227, 175, 144, 25, 248, 138, 144, 26, 195, 145, 144, 27, 225, 167, 16, 28, 172, 174, 16, 29, 193, 137, 16, 30, 140, 144, 16, 31, 161, 107, 16, 32, 108, 114, 16, 33, 129, 77, 16, 34, 76, 84, 16, 35, 97, 47, 16, 36, 44, 54, 16, 37, 74, 75, 144, 38, 12, 24, 16, 39, 42, 45, 144, 39, 245, 52, 144, 41, 10, 15, 144, 41, 213, 22, 144, 42, 233, 241, 144, 43, 180, 248, 144, 44, 201, 211, 144, 45, 148, 218, 144, 46, 169, 181, 144, 47, 116, 188, 144, 48, 137, 151, 144, 48, 231, 36, 0, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 4, 6, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 255, 255, 255, 181, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 28, 32, 1, 12, 0, 0, 14, 16, 0, 4, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8, 76, 77, 84, 0, 66, 83, 84, 0, 71, 77, 84, 0, 66, 68, 83, 84, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 71, 77, 84, 48, 66, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/GMT": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/GMT+0": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/GMT-0": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/GMT0": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Greenwich": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 71, 77, 84, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/HST": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 255, 255, 115, 96, 0, 0, 72, 83, 84, 0, 0, 0, 10, 72, 83, 84, 49, 48, 10},
+
+ "zoneinfo/Hongkong": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 5, 0, 0, 0, 17, 128, 0, 0, 0, 133, 105, 90, 246, 201, 234, 87, 184, 202, 218, 58, 168, 203, 75, 120, 128, 210, 76, 98, 112, 211, 106, 183, 56, 212, 147, 74, 168, 213, 66, 176, 56, 214, 154, 185, 168, 215, 62, 65, 184, 216, 46, 36, 168, 216, 249, 57, 184, 218, 14, 6, 168, 218, 217, 27, 184, 219, 237, 232, 168, 220, 184, 253, 184, 221, 205, 202, 168, 222, 162, 26, 56, 223, 172, 91, 40, 224, 129, 252, 56, 225, 150, 201, 40, 226, 79, 105, 56, 227, 118, 171, 40, 228, 47, 75, 56, 229, 95, 199, 168, 230, 15, 45, 56, 231, 63, 169, 168, 231, 248, 73, 184, 233, 31, 139, 168, 233, 216, 43, 184, 234, 255, 109, 168, 235, 184, 13, 184, 236, 223, 79, 168, 237, 151, 239, 184, 238, 200, 108, 40, 239, 119, 209, 184, 240, 168, 78, 40, 241, 87, 179, 184, 242, 136, 48, 40, 243, 64, 208, 56, 244, 104, 18, 40, 245, 32, 178, 56, 246, 71, 244, 40, 247, 37, 126, 56, 248, 21, 97, 40, 249, 5, 96, 56, 249, 245, 67, 40, 250, 229, 66, 56, 251, 222, 95, 168, 252, 206, 94, 184, 253, 190, 65, 168, 254, 174, 64, 184, 255, 158, 35, 168, 0, 142, 34, 184, 1, 126, 5, 168, 2, 110, 4, 184, 3, 93, 231, 168, 4, 77, 230, 184, 5, 71, 4, 40, 6, 55, 3, 56, 7, 38, 230, 40, 7, 131, 61, 56, 9, 6, 200, 40, 9, 246, 199, 56, 10, 230, 170, 40, 11, 214, 169, 56, 12, 198, 140, 40, 17, 155, 57, 56, 18, 111, 108, 168, 0, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 107, 10, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 9, 0, 0, 126, 144, 0, 13, 0, 0, 112, 128, 0, 9, 76, 77, 84, 0, 72, 75, 83, 84, 0, 72, 75, 84, 0, 74, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 72, 75, 84, 45, 56, 10},
+
+ "zoneinfo/Iceland": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 139, 96, 131, 160, 156, 145, 30, 0, 157, 209, 136, 144, 158, 114, 81, 128, 159, 213, 3, 16, 160, 83, 133, 0, 161, 182, 54, 144, 164, 60, 39, 128, 164, 185, 116, 16, 198, 77, 26, 0, 199, 61, 39, 32, 199, 218, 23, 176, 201, 38, 67, 160, 201, 195, 38, 32, 203, 6, 37, 160, 203, 172, 66, 160, 204, 220, 205, 32, 205, 140, 36, 160, 206, 188, 175, 32, 207, 108, 6, 160, 208, 156, 145, 32, 209, 75, 232, 160, 210, 133, 173, 160, 211, 43, 202, 160, 212, 101, 143, 160, 213, 57, 209, 32, 214, 69, 113, 160, 215, 25, 179, 32, 216, 37, 83, 160, 216, 249, 149, 32, 218, 14, 112, 32, 218, 217, 119, 32, 219, 229, 23, 160, 220, 185, 89, 32, 221, 206, 52, 32, 222, 162, 117, 160, 223, 174, 22, 32, 224, 130, 87, 160, 225, 141, 248, 32, 226, 98, 57, 160, 227, 109, 218, 32, 228, 66, 27, 160, 229, 77, 188, 32, 230, 33, 253, 160, 231, 54, 216, 160, 232, 11, 26, 32, 233, 22, 186, 160, 233, 234, 252, 32, 234, 246, 156, 160, 235, 202, 222, 32, 236, 214, 126, 160, 237, 170, 192, 32, 238, 182, 96, 160, 239, 138, 162, 32, 240, 150, 66, 160, 241, 106, 132, 32, 242, 127, 95, 32, 243, 83, 160, 160, 244, 95, 65, 32, 245, 51, 130, 160, 246, 63, 35, 32, 247, 19, 100, 160, 248, 31, 5, 32, 248, 243, 70, 160, 249, 254, 231, 32, 250, 211, 40, 160, 251, 232, 3, 160, 252, 188, 69, 32, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 255, 255, 235, 96, 0, 0, 0, 0, 0, 0, 1, 4, 255, 255, 241, 240, 0, 8, 255, 255, 241, 240, 0, 8, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 12, 76, 77, 84, 0, 43, 48, 48, 0, 45, 48, 49, 0, 71, 77, 84, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 10, 71, 77, 84, 48, 10},
+
+ "zoneinfo/Indian/Antananarivo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Indian/Chagos": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 137, 126, 247, 156, 48, 230, 221, 176, 127, 255, 255, 255, 0, 1, 2, 2, 0, 0, 67, 228, 0, 0, 0, 0, 70, 80, 0, 4, 0, 0, 84, 96, 0, 8, 76, 77, 84, 0, 43, 48, 53, 0, 43, 48, 54, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 62, 45, 54, 10},
+
+ "zoneinfo/Indian/Christmas": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 99, 28, 0, 0, 0, 0, 98, 112, 0, 4, 76, 77, 84, 0, 43, 48, 55, 0, 0, 0, 0, 0, 10, 60, 43, 48, 55, 62, 45, 55, 10},
+
+ "zoneinfo/Indian/Cocos": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 10, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 90, 220, 0, 0, 0, 0, 91, 104, 0, 4, 76, 77, 84, 0, 43, 48, 54, 51, 48, 0, 0, 0, 0, 0, 10, 60, 43, 48, 54, 51, 48, 62, 45, 54, 58, 51, 48, 10},
+
+ "zoneinfo/Indian/Comoro": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Indian/Kerguelen": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 218, 97, 98, 128, 127, 255, 255, 255, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 70, 80, 0, 4, 45, 48, 48, 0, 43, 48, 53, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Indian/Mahe": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 136, 100, 230, 132, 127, 255, 255, 255, 0, 1, 1, 0, 0, 51, 252, 0, 0, 0, 0, 56, 64, 0, 4, 76, 77, 84, 0, 43, 48, 52, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Indian/Maldives": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 237, 47, 195, 152, 127, 255, 255, 255, 1, 2, 2, 0, 0, 68, 232, 0, 0, 0, 0, 68, 232, 0, 4, 0, 0, 70, 80, 0, 8, 76, 77, 84, 0, 77, 77, 84, 0, 43, 48, 53, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 53, 62, 45, 53, 10},
+
+ "zoneinfo/Indian/Mauritius": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 137, 127, 5, 152, 24, 5, 237, 64, 24, 219, 114, 48, 73, 3, 150, 224, 73, 206, 143, 208, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 2, 0, 0, 53, 232, 0, 0, 0, 0, 70, 80, 1, 4, 0, 0, 56, 64, 0, 8, 76, 77, 84, 0, 43, 48, 53, 0, 43, 48, 52, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Indian/Mayotte": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 177, 238, 218, 252, 180, 194, 154, 208, 199, 145, 71, 216, 237, 47, 225, 212, 0, 1, 2, 3, 1, 0, 0, 34, 132, 0, 0, 0, 0, 42, 48, 0, 4, 0, 0, 35, 40, 0, 8, 0, 0, 38, 172, 0, 14, 0, 0, 42, 48, 0, 4, 76, 77, 84, 0, 69, 65, 84, 0, 43, 48, 50, 51, 48, 0, 43, 48, 50, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 65, 84, 45, 51, 10},
+
+ "zoneinfo/Indian/Reunion": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 145, 204, 57, 128, 127, 255, 255, 255, 0, 1, 1, 0, 0, 52, 0, 0, 0, 0, 0, 56, 64, 0, 4, 76, 77, 84, 0, 43, 48, 52, 0, 0, 0, 0, 0, 10, 60, 43, 48, 52, 62, 45, 52, 10},
+
+ "zoneinfo/Iran": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 154, 108, 125, 200, 210, 219, 18, 200, 14, 187, 162, 72, 15, 116, 45, 64, 16, 142, 64, 48, 16, 237, 58, 64, 17, 85, 103, 200, 18, 69, 74, 184, 19, 55, 236, 200, 20, 45, 21, 184, 40, 32, 118, 200, 40, 219, 157, 184, 41, 203, 156, 200, 42, 190, 34, 184, 43, 172, 208, 72, 44, 159, 86, 56, 45, 142, 3, 200, 46, 128, 137, 184, 47, 111, 55, 72, 48, 97, 189, 56, 49, 80, 106, 200, 50, 66, 240, 184, 51, 50, 239, 200, 52, 37, 117, 184, 53, 20, 35, 72, 54, 6, 169, 56, 54, 245, 86, 200, 55, 231, 220, 184, 56, 214, 138, 72, 57, 201, 16, 56, 58, 185, 15, 72, 59, 171, 149, 56, 60, 154, 66, 200, 61, 140, 200, 184, 62, 123, 118, 72, 63, 109, 252, 56, 64, 92, 169, 200, 65, 79, 47, 184, 66, 63, 46, 200, 67, 49, 180, 184, 71, 226, 201, 72, 72, 213, 79, 56, 73, 197, 78, 72, 74, 183, 212, 56, 75, 166, 129, 200, 76, 153, 7, 184, 77, 135, 181, 72, 78, 122, 59, 56, 79, 104, 232, 200, 80, 91, 110, 184, 81, 75, 109, 200, 82, 61, 243, 184, 83, 44, 161, 72, 84, 31, 39, 56, 85, 13, 212, 200, 86, 0, 90, 184, 86, 239, 8, 72, 87, 225, 142, 56, 88, 209, 141, 72, 89, 196, 19, 56, 90, 178, 192, 200, 91, 165, 70, 184, 92, 147, 244, 72, 93, 134, 122, 56, 94, 117, 39, 200, 95, 103, 173, 184, 96, 87, 172, 200, 97, 74, 50, 184, 98, 56, 224, 72, 99, 43, 102, 56, 100, 26, 19, 200, 101, 12, 153, 184, 101, 251, 71, 72, 102, 237, 205, 56, 103, 221, 204, 72, 104, 208, 82, 56, 105, 190, 255, 200, 106, 177, 133, 184, 107, 160, 51, 72, 108, 146, 185, 56, 109, 129, 102, 200, 110, 115, 236, 184, 111, 98, 154, 72, 112, 85, 32, 56, 113, 69, 31, 72, 114, 55, 165, 56, 115, 38, 82, 200, 116, 24, 216, 184, 117, 7, 134, 72, 117, 250, 12, 56, 118, 232, 185, 200, 119, 219, 63, 184, 120, 203, 62, 200, 121, 189, 196, 184, 122, 172, 114, 72, 123, 158, 248, 56, 124, 141, 165, 200, 125, 128, 43, 184, 126, 110, 217, 72, 127, 97, 95, 56, 127, 255, 255, 255, 0, 1, 2, 4, 3, 4, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 2, 0, 0, 48, 56, 0, 0, 0, 0, 48, 56, 0, 4, 0, 0, 49, 56, 0, 8, 0, 0, 70, 80, 1, 14, 0, 0, 56, 64, 0, 18, 0, 0, 63, 72, 1, 22, 0, 0, 49, 56, 0, 8, 76, 77, 84, 0, 84, 77, 84, 0, 43, 48, 51, 51, 48, 0, 43, 48, 53, 0, 43, 48, 52, 0, 43, 48, 52, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 51, 51, 48, 62, 45, 51, 58, 51, 48, 60, 43, 48, 52, 51, 48, 62, 44, 74, 56, 48, 47, 48, 44, 74, 50, 54, 52, 47, 48, 10},
+
+ "zoneinfo/Israel": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 6, 0, 0, 0, 21, 128, 0, 0, 0, 158, 48, 69, 136, 200, 89, 178, 224, 204, 229, 193, 80, 205, 172, 254, 0, 206, 198, 244, 208, 207, 143, 102, 224, 208, 169, 121, 208, 209, 132, 96, 224, 210, 138, 201, 112, 211, 101, 176, 128, 212, 107, 224, 208, 215, 90, 20, 96, 215, 223, 31, 192, 216, 47, 181, 112, 217, 30, 70, 224, 218, 16, 232, 240, 218, 235, 179, 224, 219, 180, 52, 0, 220, 185, 32, 224, 221, 224, 141, 0, 222, 180, 206, 128, 223, 164, 191, 128, 224, 139, 118, 0, 225, 86, 125, 0, 226, 190, 74, 96, 227, 54, 52, 208, 228, 156, 247, 0, 229, 22, 22, 208, 230, 116, 211, 224, 231, 17, 210, 128, 232, 39, 255, 0, 232, 232, 79, 208, 8, 124, 139, 224, 8, 253, 176, 208, 9, 246, 234, 96, 10, 166, 51, 208, 28, 190, 248, 224, 29, 137, 241, 208, 30, 204, 255, 96, 31, 96, 153, 80, 32, 130, 177, 96, 33, 73, 181, 208, 34, 94, 158, 224, 35, 32, 93, 80, 36, 90, 48, 96, 37, 0, 63, 80, 38, 11, 237, 224, 38, 214, 230, 208, 39, 235, 207, 224, 40, 192, 3, 80, 41, 212, 236, 96, 42, 169, 31, 208, 43, 187, 101, 224, 44, 137, 1, 208, 45, 155, 71, 224, 46, 95, 169, 80, 47, 123, 41, 224, 48, 72, 197, 208, 49, 72, 150, 224, 50, 60, 110, 80, 51, 49, 179, 96, 52, 26, 254, 208, 53, 17, 149, 96, 53, 241, 166, 80, 55, 4, 8, 128, 55, 207, 1, 112, 56, 246, 95, 128, 57, 220, 249, 224, 58, 208, 237, 112, 59, 174, 91, 96, 60, 163, 160, 112, 61, 160, 178, 96, 62, 131, 130, 112, 63, 124, 159, 224, 64, 115, 54, 112, 65, 80, 164, 96, 66, 76, 143, 0, 67, 72, 79, 112, 68, 44, 113, 0, 69, 30, 246, 240, 70, 12, 83, 0, 70, 236, 99, 240, 71, 236, 53, 0, 72, 231, 245, 112, 73, 204, 23, 0, 74, 190, 156, 240, 75, 171, 249, 0, 76, 140, 9, 240, 77, 149, 21, 128, 78, 135, 155, 112, 79, 116, 247, 128, 80, 94, 66, 240, 81, 84, 217, 128, 82, 108, 73, 112, 83, 52, 187, 128, 84, 76, 43, 112, 85, 20, 157, 128, 86, 44, 13, 112, 86, 244, 127, 128, 88, 21, 41, 240, 88, 212, 97, 128, 89, 245, 11, 240, 90, 180, 67, 128, 91, 212, 237, 240, 92, 157, 96, 0, 93, 180, 207, 240, 94, 125, 66, 0, 95, 148, 177, 240, 96, 93, 36, 0, 97, 125, 206, 112, 98, 61, 6, 0, 99, 93, 176, 112, 100, 28, 232, 0, 101, 61, 146, 112, 102, 6, 4, 128, 103, 29, 116, 112, 103, 229, 230, 128, 104, 253, 86, 112, 105, 197, 200, 128, 106, 221, 56, 112, 107, 165, 170, 128, 108, 198, 84, 240, 109, 133, 140, 128, 110, 166, 54, 240, 111, 101, 110, 128, 112, 134, 24, 240, 113, 78, 139, 0, 114, 101, 250, 240, 115, 46, 109, 0, 116, 69, 220, 240, 117, 14, 79, 0, 118, 46, 249, 112, 118, 238, 49, 0, 120, 14, 219, 112, 120, 206, 19, 0, 121, 238, 189, 112, 122, 173, 245, 0, 123, 206, 159, 112, 124, 151, 17, 128, 125, 174, 129, 112, 126, 118, 243, 128, 127, 142, 99, 112, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 33, 6, 0, 0, 0, 0, 32, 248, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 12, 0, 0, 56, 64, 1, 16, 0, 0, 42, 48, 1, 8, 76, 77, 84, 0, 74, 77, 84, 0, 73, 68, 84, 0, 73, 83, 84, 0, 73, 68, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 73, 83, 84, 45, 50, 73, 68, 84, 44, 77, 51, 46, 52, 46, 52, 47, 50, 54, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Jamaica": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 147, 15, 180, 255, 7, 141, 25, 112, 9, 16, 164, 96, 9, 173, 148, 240, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 184, 1, 0, 0, 255, 255, 184, 1, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 76, 77, 84, 0, 75, 77, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 83, 84, 53, 10},
+
+ "zoneinfo/Japan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 215, 62, 30, 144, 215, 236, 22, 128, 216, 249, 22, 144, 217, 203, 248, 128, 219, 7, 29, 16, 219, 171, 218, 128, 220, 230, 255, 16, 221, 139, 188, 128, 3, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 131, 3, 0, 0, 0, 0, 140, 160, 1, 4, 0, 0, 126, 144, 0, 8, 0, 0, 126, 144, 0, 8, 76, 77, 84, 0, 74, 68, 84, 0, 74, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 1, 10, 74, 83, 84, 45, 57, 10},
+
+ "zoneinfo/Kwajalein": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 255, 134, 27, 80, 44, 116, 188, 192, 127, 255, 255, 255, 1, 2, 3, 3, 0, 0, 156, 224, 0, 0, 0, 0, 154, 176, 0, 4, 255, 255, 87, 64, 0, 8, 0, 0, 168, 192, 0, 12, 76, 77, 84, 0, 43, 49, 49, 0, 45, 49, 50, 0, 43, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Libya": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 161, 242, 193, 36, 221, 187, 177, 16, 222, 35, 173, 96, 225, 120, 210, 16, 225, 231, 101, 224, 229, 47, 63, 112, 229, 169, 204, 224, 235, 78, 198, 240, 22, 146, 66, 96, 23, 8, 247, 112, 23, 250, 43, 224, 24, 234, 42, 240, 25, 219, 95, 96, 26, 204, 175, 240, 27, 189, 228, 96, 28, 180, 122, 240, 29, 159, 23, 224, 30, 147, 11, 112, 31, 130, 238, 96, 32, 112, 74, 112, 33, 97, 126, 224, 34, 82, 207, 112, 35, 68, 3, 224, 36, 52, 2, 240, 37, 37, 55, 96, 38, 64, 183, 240, 50, 78, 241, 96, 51, 68, 54, 112, 52, 53, 106, 224, 80, 157, 153, 0, 81, 84, 217, 128, 82, 105, 180, 128, 0, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 3, 2, 1, 3, 0, 0, 12, 92, 0, 0, 0, 0, 28, 32, 1, 4, 0, 0, 14, 16, 0, 9, 0, 0, 28, 32, 0, 13, 76, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 69, 84, 45, 50, 10},
+
+ "zoneinfo/MET": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 4, 0, 0, 0, 9, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 200, 9, 113, 144, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 130, 37, 16, 209, 114, 22, 16, 210, 78, 64, 144, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 28, 32, 1, 0, 0, 0, 14, 16, 0, 5, 0, 0, 28, 32, 1, 0, 0, 0, 14, 16, 0, 5, 77, 69, 83, 84, 0, 77, 69, 84, 0, 0, 0, 1, 1, 0, 0, 0, 0, 10, 77, 69, 84, 45, 49, 77, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/MST": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 255, 255, 157, 144, 0, 0, 77, 83, 84, 0, 0, 0, 10, 77, 83, 84, 55, 10},
+
+ "zoneinfo/MST7MDT": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 4, 0, 0, 0, 16, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 0, 1, 0, 1, 2, 3, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 255, 255, 171, 160, 1, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 1, 8, 255, 255, 171, 160, 1, 12, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 0, 0, 0, 1, 0, 0, 0, 1, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Mexico/BajaNorte": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 165, 182, 246, 128, 169, 121, 79, 112, 175, 242, 124, 240, 182, 102, 100, 112, 183, 27, 16, 0, 184, 10, 242, 240, 203, 234, 141, 128, 210, 35, 244, 112, 210, 153, 186, 112, 215, 27, 89, 0, 216, 145, 180, 240, 226, 126, 75, 144, 227, 73, 82, 144, 228, 94, 45, 144, 229, 41, 52, 144, 230, 71, 74, 16, 231, 18, 81, 16, 232, 39, 44, 16, 232, 242, 51, 16, 234, 7, 14, 16, 234, 210, 21, 16, 235, 230, 240, 16, 236, 177, 247, 16, 237, 198, 210, 16, 238, 145, 217, 16, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 70, 15, 130, 160, 71, 36, 79, 144, 71, 248, 159, 32, 73, 4, 49, 144, 73, 216, 129, 32, 74, 228, 19, 144, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 0, 1, 2, 1, 2, 3, 2, 4, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 146, 76, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 255, 255, 157, 144, 1, 20, 76, 77, 84, 0, 77, 83, 84, 0, 80, 83, 84, 0, 80, 68, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Mexico/BajaSur": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 6, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 203, 234, 113, 96, 216, 145, 180, 240, 0, 0, 112, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 245, 18, 144, 59, 182, 209, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 70, 15, 116, 144, 71, 36, 65, 128, 71, 248, 145, 16, 73, 4, 35, 128, 73, 216, 115, 16, 74, 228, 5, 128, 75, 184, 85, 16, 76, 205, 34, 0, 77, 152, 55, 16, 78, 173, 4, 0, 79, 120, 25, 16, 80, 140, 230, 0, 81, 97, 53, 144, 82, 108, 200, 0, 83, 65, 23, 144, 84, 76, 170, 0, 85, 32, 249, 144, 86, 44, 140, 0, 87, 0, 219, 144, 88, 21, 168, 128, 88, 224, 189, 144, 89, 245, 138, 128, 90, 192, 159, 144, 91, 213, 108, 128, 92, 169, 188, 16, 93, 181, 78, 128, 94, 137, 158, 16, 95, 149, 48, 128, 96, 105, 128, 16, 97, 126, 77, 0, 98, 73, 98, 16, 99, 94, 47, 0, 100, 41, 68, 16, 101, 62, 17, 0, 102, 18, 96, 144, 103, 29, 243, 0, 103, 242, 66, 144, 104, 253, 213, 0, 105, 210, 36, 144, 106, 221, 183, 0, 107, 178, 6, 144, 108, 198, 211, 128, 109, 145, 232, 144, 110, 166, 181, 128, 111, 113, 202, 144, 112, 134, 151, 128, 113, 90, 231, 16, 114, 102, 121, 128, 115, 58, 201, 16, 116, 70, 91, 128, 117, 26, 171, 16, 118, 47, 120, 0, 118, 250, 141, 16, 120, 15, 90, 0, 120, 218, 111, 16, 121, 239, 60, 0, 122, 186, 81, 16, 123, 207, 30, 0, 124, 163, 109, 144, 125, 175, 0, 0, 126, 131, 79, 144, 127, 142, 226, 0, 0, 1, 2, 1, 2, 1, 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 255, 255, 156, 60, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 143, 128, 0, 12, 255, 255, 171, 160, 1, 16, 255, 255, 157, 144, 0, 4, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 80, 83, 84, 0, 77, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Mexico/General": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 165, 182, 232, 112, 175, 242, 110, 224, 182, 102, 86, 96, 183, 67, 210, 96, 184, 12, 54, 96, 184, 253, 134, 240, 197, 222, 176, 96, 198, 151, 52, 80, 201, 85, 241, 224, 201, 234, 221, 80, 207, 2, 198, 224, 207, 183, 86, 80, 218, 153, 21, 224, 219, 118, 131, 208, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 245, 4, 128, 59, 182, 194, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 70, 15, 102, 128, 71, 36, 51, 112, 71, 248, 131, 0, 73, 4, 21, 112, 73, 216, 101, 0, 74, 227, 247, 112, 75, 184, 71, 0, 76, 205, 19, 240, 77, 152, 41, 0, 78, 172, 245, 240, 79, 120, 11, 0, 80, 140, 215, 240, 81, 97, 39, 128, 82, 108, 185, 240, 83, 65, 9, 128, 84, 76, 155, 240, 85, 32, 235, 128, 86, 44, 125, 240, 87, 0, 205, 128, 88, 21, 154, 112, 88, 224, 175, 128, 89, 245, 124, 112, 90, 192, 145, 128, 91, 213, 94, 112, 92, 169, 174, 0, 93, 181, 64, 112, 94, 137, 144, 0, 95, 149, 34, 112, 96, 105, 114, 0, 97, 126, 62, 240, 98, 73, 84, 0, 99, 94, 32, 240, 100, 41, 54, 0, 101, 62, 2, 240, 102, 18, 82, 128, 103, 29, 228, 240, 103, 242, 52, 128, 104, 253, 198, 240, 105, 210, 22, 128, 106, 221, 168, 240, 107, 177, 248, 128, 108, 198, 197, 112, 109, 145, 218, 128, 110, 166, 167, 112, 111, 113, 188, 128, 112, 134, 137, 112, 113, 90, 217, 0, 114, 102, 107, 112, 115, 58, 187, 0, 116, 70, 77, 112, 117, 26, 157, 0, 118, 47, 105, 240, 118, 250, 127, 0, 120, 15, 75, 240, 120, 218, 97, 0, 121, 239, 45, 240, 122, 186, 67, 0, 123, 207, 15, 240, 124, 163, 95, 128, 125, 174, 241, 240, 126, 131, 65, 128, 127, 142, 211, 240, 0, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 255, 255, 163, 12, 0, 0, 255, 255, 157, 144, 0, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 76, 77, 84, 0, 77, 83, 84, 0, 67, 83, 84, 0, 67, 68, 84, 0, 67, 87, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 52, 46, 49, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/NZ": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 7, 0, 0, 0, 19, 128, 0, 0, 0, 176, 180, 178, 232, 177, 81, 135, 88, 178, 120, 229, 104, 179, 67, 229, 96, 180, 88, 199, 104, 181, 35, 199, 96, 182, 56, 169, 104, 183, 3, 169, 96, 184, 24, 139, 104, 184, 236, 197, 224, 185, 248, 109, 104, 186, 204, 167, 224, 187, 216, 79, 104, 188, 227, 232, 224, 189, 174, 246, 232, 190, 195, 202, 224, 191, 142, 216, 232, 192, 163, 172, 224, 193, 110, 186, 232, 194, 131, 142, 224, 195, 78, 156, 232, 196, 99, 112, 224, 197, 46, 126, 232, 198, 76, 141, 96, 199, 14, 96, 232, 200, 44, 111, 96, 200, 247, 125, 104, 210, 218, 154, 64, 9, 24, 253, 224, 9, 172, 165, 224, 10, 239, 165, 96, 11, 158, 252, 224, 12, 216, 193, 224, 13, 126, 222, 224, 14, 184, 163, 224, 15, 94, 192, 224, 16, 152, 133, 224, 17, 62, 162, 224, 18, 120, 103, 224, 19, 30, 132, 224, 20, 88, 73, 224, 20, 254, 102, 224, 22, 56, 43, 224, 22, 231, 131, 96, 24, 33, 72, 96, 24, 199, 101, 96, 26, 1, 42, 96, 26, 167, 71, 96, 27, 225, 12, 96, 28, 135, 41, 96, 29, 192, 238, 96, 30, 103, 11, 96, 31, 160, 208, 96, 32, 70, 237, 96, 33, 128, 178, 96, 34, 48, 9, 224, 35, 105, 206, 224, 36, 15, 235, 224, 37, 46, 1, 96, 38, 2, 66, 224, 39, 13, 227, 96, 39, 226, 36, 224, 40, 237, 197, 96, 41, 194, 6, 224, 42, 205, 167, 96, 43, 171, 35, 96, 44, 173, 137, 96, 45, 139, 5, 96, 46, 141, 107, 96, 47, 106, 231, 96, 48, 109, 77, 96, 49, 74, 201, 96, 50, 86, 105, 224, 51, 42, 171, 96, 52, 54, 75, 224, 53, 10, 141, 96, 54, 22, 45, 224, 54, 243, 169, 224, 55, 246, 15, 224, 56, 211, 139, 224, 57, 213, 241, 224, 58, 179, 109, 224, 59, 191, 14, 96, 60, 147, 79, 224, 61, 158, 240, 96, 62, 115, 49, 224, 63, 126, 210, 96, 64, 92, 78, 96, 65, 94, 180, 96, 66, 60, 48, 96, 67, 62, 150, 96, 68, 28, 18, 96, 69, 30, 120, 96, 69, 251, 244, 96, 70, 254, 90, 96, 71, 247, 133, 224, 72, 222, 60, 96, 73, 215, 103, 224, 74, 190, 30, 96, 75, 183, 73, 224, 76, 158, 0, 96, 77, 151, 43, 224, 78, 125, 226, 96, 79, 119, 13, 224, 80, 102, 254, 224, 81, 96, 42, 96, 82, 70, 224, 224, 83, 64, 12, 96, 84, 38, 194, 224, 85, 31, 238, 96, 86, 6, 164, 224, 86, 255, 208, 96, 87, 230, 134, 224, 88, 223, 178, 96, 89, 198, 104, 224, 90, 191, 148, 96, 91, 175, 133, 96, 92, 168, 176, 224, 93, 143, 103, 96, 94, 136, 146, 224, 95, 111, 73, 96, 96, 104, 116, 224, 97, 79, 43, 96, 98, 72, 86, 224, 99, 47, 13, 96, 100, 40, 56, 224, 101, 14, 239, 96, 102, 17, 85, 96, 102, 248, 11, 224, 103, 241, 55, 96, 104, 215, 237, 224, 105, 209, 25, 96, 106, 183, 207, 224, 107, 176, 251, 96, 108, 151, 177, 224, 109, 144, 221, 96, 110, 119, 147, 224, 111, 112, 191, 96, 112, 96, 176, 96, 113, 89, 219, 224, 114, 64, 146, 96, 115, 57, 189, 224, 116, 32, 116, 96, 117, 25, 159, 224, 118, 0, 86, 96, 118, 249, 129, 224, 119, 224, 56, 96, 120, 217, 99, 224, 121, 192, 26, 96, 122, 185, 69, 224, 123, 169, 54, 224, 124, 162, 98, 96, 125, 137, 24, 224, 126, 130, 68, 96, 127, 104, 250, 224, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 0, 0, 163, 216, 0, 0, 0, 0, 175, 200, 1, 4, 0, 0, 161, 184, 0, 9, 0, 0, 168, 192, 1, 4, 0, 0, 182, 208, 1, 14, 0, 0, 168, 192, 0, 4, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 78, 90, 83, 84, 0, 78, 90, 77, 84, 0, 78, 90, 68, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 78, 90, 83, 84, 45, 49, 50, 78, 90, 68, 84, 44, 77, 57, 46, 53, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/NZ-CHAT": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 5, 0, 0, 0, 22, 128, 0, 0, 0, 210, 218, 150, 188, 9, 24, 253, 224, 9, 172, 165, 224, 10, 239, 165, 96, 11, 158, 252, 224, 12, 216, 193, 224, 13, 126, 222, 224, 14, 184, 163, 224, 15, 94, 192, 224, 16, 152, 133, 224, 17, 62, 162, 224, 18, 120, 103, 224, 19, 30, 132, 224, 20, 88, 73, 224, 20, 254, 102, 224, 22, 56, 43, 224, 22, 231, 131, 96, 24, 33, 72, 96, 24, 199, 101, 96, 26, 1, 42, 96, 26, 167, 71, 96, 27, 225, 12, 96, 28, 135, 41, 96, 29, 192, 238, 96, 30, 103, 11, 96, 31, 160, 208, 96, 32, 70, 237, 96, 33, 128, 178, 96, 34, 48, 9, 224, 35, 105, 206, 224, 36, 15, 235, 224, 37, 46, 1, 96, 38, 2, 66, 224, 39, 13, 227, 96, 39, 226, 36, 224, 40, 237, 197, 96, 41, 194, 6, 224, 42, 205, 167, 96, 43, 171, 35, 96, 44, 173, 137, 96, 45, 139, 5, 96, 46, 141, 107, 96, 47, 106, 231, 96, 48, 109, 77, 96, 49, 74, 201, 96, 50, 86, 105, 224, 51, 42, 171, 96, 52, 54, 75, 224, 53, 10, 141, 96, 54, 22, 45, 224, 54, 243, 169, 224, 55, 246, 15, 224, 56, 211, 139, 224, 57, 213, 241, 224, 58, 179, 109, 224, 59, 191, 14, 96, 60, 147, 79, 224, 61, 158, 240, 96, 62, 115, 49, 224, 63, 126, 210, 96, 64, 92, 78, 96, 65, 94, 180, 96, 66, 60, 48, 96, 67, 62, 150, 96, 68, 28, 18, 96, 69, 30, 120, 96, 69, 251, 244, 96, 70, 254, 90, 96, 71, 247, 133, 224, 72, 222, 60, 96, 73, 215, 103, 224, 74, 190, 30, 96, 75, 183, 73, 224, 76, 158, 0, 96, 77, 151, 43, 224, 78, 125, 226, 96, 79, 119, 13, 224, 80, 102, 254, 224, 81, 96, 42, 96, 82, 70, 224, 224, 83, 64, 12, 96, 84, 38, 194, 224, 85, 31, 238, 96, 86, 6, 164, 224, 86, 255, 208, 96, 87, 230, 134, 224, 88, 223, 178, 96, 89, 198, 104, 224, 90, 191, 148, 96, 91, 175, 133, 96, 92, 168, 176, 224, 93, 143, 103, 96, 94, 136, 146, 224, 95, 111, 73, 96, 96, 104, 116, 224, 97, 79, 43, 96, 98, 72, 86, 224, 99, 47, 13, 96, 100, 40, 56, 224, 101, 14, 239, 96, 102, 17, 85, 96, 102, 248, 11, 224, 103, 241, 55, 96, 104, 215, 237, 224, 105, 209, 25, 96, 106, 183, 207, 224, 107, 176, 251, 96, 108, 151, 177, 224, 109, 144, 221, 96, 110, 119, 147, 224, 111, 112, 191, 96, 112, 96, 176, 96, 113, 89, 219, 224, 114, 64, 146, 96, 115, 57, 189, 224, 116, 32, 116, 96, 117, 25, 159, 224, 118, 0, 86, 96, 118, 249, 129, 224, 119, 224, 56, 96, 120, 217, 99, 224, 121, 192, 26, 96, 122, 185, 69, 224, 123, 169, 54, 224, 124, 162, 98, 96, 125, 137, 24, 224, 126, 130, 68, 96, 127, 104, 250, 224, 127, 255, 255, 255, 1, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 0, 0, 171, 252, 0, 0, 0, 0, 172, 68, 0, 4, 0, 0, 193, 92, 1, 10, 0, 0, 179, 76, 0, 16, 0, 0, 179, 76, 0, 16, 76, 77, 84, 0, 43, 49, 50, 49, 53, 0, 43, 49, 51, 52, 53, 0, 43, 49, 50, 52, 53, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 52, 53, 62, 45, 49, 50, 58, 52, 53, 60, 43, 49, 51, 52, 53, 62, 44, 77, 57, 46, 53, 46, 48, 47, 50, 58, 52, 53, 44, 77, 52, 46, 49, 46, 48, 47, 51, 58, 52, 53, 10},
+
+ "zoneinfo/Navajo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 162, 101, 254, 144, 163, 132, 6, 0, 164, 69, 224, 144, 164, 143, 166, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 247, 47, 118, 144, 248, 40, 148, 0, 249, 15, 88, 144, 250, 8, 118, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 157, 148, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/PRC": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 200, 92, 1, 128, 200, 250, 39, 112, 201, 213, 14, 128, 202, 219, 90, 240, 30, 186, 54, 0, 31, 105, 127, 112, 32, 126, 104, 128, 33, 73, 97, 112, 34, 94, 74, 128, 35, 41, 67, 112, 36, 71, 103, 0, 37, 18, 95, 240, 38, 39, 73, 0, 38, 242, 65, 240, 40, 7, 43, 0, 40, 210, 35, 240, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 113, 215, 0, 0, 0, 0, 126, 144, 1, 4, 0, 0, 112, 128, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/PST8PDT": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 4, 0, 0, 0, 16, 158, 166, 72, 160, 159, 187, 21, 144, 160, 134, 42, 160, 161, 154, 247, 144, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 250, 248, 131, 32, 251, 232, 102, 16, 252, 216, 101, 32, 253, 200, 72, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 7, 141, 67, 160, 9, 16, 206, 144, 9, 173, 191, 32, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 0, 1, 0, 1, 2, 3, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 255, 255, 157, 144, 1, 0, 255, 255, 143, 128, 0, 4, 255, 255, 157, 144, 1, 8, 255, 255, 157, 144, 1, 12, 80, 68, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 1, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/Pacific/Apia": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 7, 0, 0, 0, 26, 128, 0, 0, 0, 145, 5, 252, 0, 218, 98, 4, 56, 76, 159, 39, 176, 77, 151, 43, 224, 78, 125, 226, 96, 78, 253, 139, 160, 79, 119, 13, 224, 80, 102, 254, 224, 81, 96, 42, 96, 82, 70, 224, 224, 83, 64, 12, 96, 84, 38, 194, 224, 85, 31, 238, 96, 86, 6, 164, 224, 86, 255, 208, 96, 87, 230, 134, 224, 88, 223, 178, 96, 89, 198, 104, 224, 90, 191, 148, 96, 91, 175, 133, 96, 92, 168, 176, 224, 93, 143, 103, 96, 94, 136, 146, 224, 95, 111, 73, 96, 96, 104, 116, 224, 97, 79, 43, 96, 98, 72, 86, 224, 99, 47, 13, 96, 100, 40, 56, 224, 101, 14, 239, 96, 102, 17, 85, 96, 102, 248, 11, 224, 103, 241, 55, 96, 104, 215, 237, 224, 105, 209, 25, 96, 106, 183, 207, 224, 107, 176, 251, 96, 108, 151, 177, 224, 109, 144, 221, 96, 110, 119, 147, 224, 111, 112, 191, 96, 112, 96, 176, 96, 113, 89, 219, 224, 114, 64, 146, 96, 115, 57, 189, 224, 116, 32, 116, 96, 117, 25, 159, 224, 118, 0, 86, 96, 118, 249, 129, 224, 119, 224, 56, 96, 120, 217, 99, 224, 121, 192, 26, 96, 122, 185, 69, 224, 123, 169, 54, 224, 124, 162, 98, 96, 125, 137, 24, 224, 126, 130, 68, 96, 127, 104, 250, 224, 127, 255, 255, 255, 1, 2, 4, 3, 4, 3, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 0, 0, 176, 128, 0, 0, 255, 255, 95, 0, 0, 0, 255, 255, 94, 72, 0, 4, 255, 255, 115, 96, 1, 10, 255, 255, 101, 80, 0, 14, 0, 0, 182, 208, 0, 18, 0, 0, 196, 224, 1, 22, 76, 77, 84, 0, 45, 49, 49, 51, 48, 0, 45, 49, 48, 0, 45, 49, 49, 0, 43, 49, 51, 0, 43, 49, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 51, 62, 45, 49, 51, 60, 43, 49, 52, 62, 44, 77, 57, 46, 53, 46, 48, 47, 51, 44, 77, 52, 46, 49, 46, 48, 47, 52, 10},
+
+ "zoneinfo/Pacific/Auckland": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 7, 0, 0, 0, 19, 128, 0, 0, 0, 176, 180, 178, 232, 177, 81, 135, 88, 178, 120, 229, 104, 179, 67, 229, 96, 180, 88, 199, 104, 181, 35, 199, 96, 182, 56, 169, 104, 183, 3, 169, 96, 184, 24, 139, 104, 184, 236, 197, 224, 185, 248, 109, 104, 186, 204, 167, 224, 187, 216, 79, 104, 188, 227, 232, 224, 189, 174, 246, 232, 190, 195, 202, 224, 191, 142, 216, 232, 192, 163, 172, 224, 193, 110, 186, 232, 194, 131, 142, 224, 195, 78, 156, 232, 196, 99, 112, 224, 197, 46, 126, 232, 198, 76, 141, 96, 199, 14, 96, 232, 200, 44, 111, 96, 200, 247, 125, 104, 210, 218, 154, 64, 9, 24, 253, 224, 9, 172, 165, 224, 10, 239, 165, 96, 11, 158, 252, 224, 12, 216, 193, 224, 13, 126, 222, 224, 14, 184, 163, 224, 15, 94, 192, 224, 16, 152, 133, 224, 17, 62, 162, 224, 18, 120, 103, 224, 19, 30, 132, 224, 20, 88, 73, 224, 20, 254, 102, 224, 22, 56, 43, 224, 22, 231, 131, 96, 24, 33, 72, 96, 24, 199, 101, 96, 26, 1, 42, 96, 26, 167, 71, 96, 27, 225, 12, 96, 28, 135, 41, 96, 29, 192, 238, 96, 30, 103, 11, 96, 31, 160, 208, 96, 32, 70, 237, 96, 33, 128, 178, 96, 34, 48, 9, 224, 35, 105, 206, 224, 36, 15, 235, 224, 37, 46, 1, 96, 38, 2, 66, 224, 39, 13, 227, 96, 39, 226, 36, 224, 40, 237, 197, 96, 41, 194, 6, 224, 42, 205, 167, 96, 43, 171, 35, 96, 44, 173, 137, 96, 45, 139, 5, 96, 46, 141, 107, 96, 47, 106, 231, 96, 48, 109, 77, 96, 49, 74, 201, 96, 50, 86, 105, 224, 51, 42, 171, 96, 52, 54, 75, 224, 53, 10, 141, 96, 54, 22, 45, 224, 54, 243, 169, 224, 55, 246, 15, 224, 56, 211, 139, 224, 57, 213, 241, 224, 58, 179, 109, 224, 59, 191, 14, 96, 60, 147, 79, 224, 61, 158, 240, 96, 62, 115, 49, 224, 63, 126, 210, 96, 64, 92, 78, 96, 65, 94, 180, 96, 66, 60, 48, 96, 67, 62, 150, 96, 68, 28, 18, 96, 69, 30, 120, 96, 69, 251, 244, 96, 70, 254, 90, 96, 71, 247, 133, 224, 72, 222, 60, 96, 73, 215, 103, 224, 74, 190, 30, 96, 75, 183, 73, 224, 76, 158, 0, 96, 77, 151, 43, 224, 78, 125, 226, 96, 79, 119, 13, 224, 80, 102, 254, 224, 81, 96, 42, 96, 82, 70, 224, 224, 83, 64, 12, 96, 84, 38, 194, 224, 85, 31, 238, 96, 86, 6, 164, 224, 86, 255, 208, 96, 87, 230, 134, 224, 88, 223, 178, 96, 89, 198, 104, 224, 90, 191, 148, 96, 91, 175, 133, 96, 92, 168, 176, 224, 93, 143, 103, 96, 94, 136, 146, 224, 95, 111, 73, 96, 96, 104, 116, 224, 97, 79, 43, 96, 98, 72, 86, 224, 99, 47, 13, 96, 100, 40, 56, 224, 101, 14, 239, 96, 102, 17, 85, 96, 102, 248, 11, 224, 103, 241, 55, 96, 104, 215, 237, 224, 105, 209, 25, 96, 106, 183, 207, 224, 107, 176, 251, 96, 108, 151, 177, 224, 109, 144, 221, 96, 110, 119, 147, 224, 111, 112, 191, 96, 112, 96, 176, 96, 113, 89, 219, 224, 114, 64, 146, 96, 115, 57, 189, 224, 116, 32, 116, 96, 117, 25, 159, 224, 118, 0, 86, 96, 118, 249, 129, 224, 119, 224, 56, 96, 120, 217, 99, 224, 121, 192, 26, 96, 122, 185, 69, 224, 123, 169, 54, 224, 124, 162, 98, 96, 125, 137, 24, 224, 126, 130, 68, 96, 127, 104, 250, 224, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 0, 0, 163, 216, 0, 0, 0, 0, 175, 200, 1, 4, 0, 0, 161, 184, 0, 9, 0, 0, 168, 192, 1, 4, 0, 0, 182, 208, 1, 14, 0, 0, 168, 192, 0, 4, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 78, 90, 83, 84, 0, 78, 90, 77, 84, 0, 78, 90, 68, 84, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 78, 90, 83, 84, 45, 49, 50, 78, 90, 68, 84, 44, 77, 57, 46, 53, 46, 48, 44, 77, 52, 46, 49, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Pacific/Bougainville": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 17, 128, 0, 0, 0, 204, 67, 54, 96, 210, 43, 108, 240, 84, 158, 215, 128, 127, 255, 255, 255, 1, 2, 1, 3, 3, 0, 0, 137, 240, 0, 0, 0, 0, 140, 160, 0, 5, 0, 0, 126, 144, 0, 9, 0, 0, 154, 176, 0, 13, 80, 77, 77, 84, 0, 43, 49, 48, 0, 43, 48, 57, 0, 43, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Chatham": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 5, 0, 0, 0, 22, 128, 0, 0, 0, 210, 218, 150, 188, 9, 24, 253, 224, 9, 172, 165, 224, 10, 239, 165, 96, 11, 158, 252, 224, 12, 216, 193, 224, 13, 126, 222, 224, 14, 184, 163, 224, 15, 94, 192, 224, 16, 152, 133, 224, 17, 62, 162, 224, 18, 120, 103, 224, 19, 30, 132, 224, 20, 88, 73, 224, 20, 254, 102, 224, 22, 56, 43, 224, 22, 231, 131, 96, 24, 33, 72, 96, 24, 199, 101, 96, 26, 1, 42, 96, 26, 167, 71, 96, 27, 225, 12, 96, 28, 135, 41, 96, 29, 192, 238, 96, 30, 103, 11, 96, 31, 160, 208, 96, 32, 70, 237, 96, 33, 128, 178, 96, 34, 48, 9, 224, 35, 105, 206, 224, 36, 15, 235, 224, 37, 46, 1, 96, 38, 2, 66, 224, 39, 13, 227, 96, 39, 226, 36, 224, 40, 237, 197, 96, 41, 194, 6, 224, 42, 205, 167, 96, 43, 171, 35, 96, 44, 173, 137, 96, 45, 139, 5, 96, 46, 141, 107, 96, 47, 106, 231, 96, 48, 109, 77, 96, 49, 74, 201, 96, 50, 86, 105, 224, 51, 42, 171, 96, 52, 54, 75, 224, 53, 10, 141, 96, 54, 22, 45, 224, 54, 243, 169, 224, 55, 246, 15, 224, 56, 211, 139, 224, 57, 213, 241, 224, 58, 179, 109, 224, 59, 191, 14, 96, 60, 147, 79, 224, 61, 158, 240, 96, 62, 115, 49, 224, 63, 126, 210, 96, 64, 92, 78, 96, 65, 94, 180, 96, 66, 60, 48, 96, 67, 62, 150, 96, 68, 28, 18, 96, 69, 30, 120, 96, 69, 251, 244, 96, 70, 254, 90, 96, 71, 247, 133, 224, 72, 222, 60, 96, 73, 215, 103, 224, 74, 190, 30, 96, 75, 183, 73, 224, 76, 158, 0, 96, 77, 151, 43, 224, 78, 125, 226, 96, 79, 119, 13, 224, 80, 102, 254, 224, 81, 96, 42, 96, 82, 70, 224, 224, 83, 64, 12, 96, 84, 38, 194, 224, 85, 31, 238, 96, 86, 6, 164, 224, 86, 255, 208, 96, 87, 230, 134, 224, 88, 223, 178, 96, 89, 198, 104, 224, 90, 191, 148, 96, 91, 175, 133, 96, 92, 168, 176, 224, 93, 143, 103, 96, 94, 136, 146, 224, 95, 111, 73, 96, 96, 104, 116, 224, 97, 79, 43, 96, 98, 72, 86, 224, 99, 47, 13, 96, 100, 40, 56, 224, 101, 14, 239, 96, 102, 17, 85, 96, 102, 248, 11, 224, 103, 241, 55, 96, 104, 215, 237, 224, 105, 209, 25, 96, 106, 183, 207, 224, 107, 176, 251, 96, 108, 151, 177, 224, 109, 144, 221, 96, 110, 119, 147, 224, 111, 112, 191, 96, 112, 96, 176, 96, 113, 89, 219, 224, 114, 64, 146, 96, 115, 57, 189, 224, 116, 32, 116, 96, 117, 25, 159, 224, 118, 0, 86, 96, 118, 249, 129, 224, 119, 224, 56, 96, 120, 217, 99, 224, 121, 192, 26, 96, 122, 185, 69, 224, 123, 169, 54, 224, 124, 162, 98, 96, 125, 137, 24, 224, 126, 130, 68, 96, 127, 104, 250, 224, 127, 255, 255, 255, 1, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 0, 0, 171, 252, 0, 0, 0, 0, 172, 68, 0, 4, 0, 0, 193, 92, 1, 10, 0, 0, 179, 76, 0, 16, 0, 0, 179, 76, 0, 16, 76, 77, 84, 0, 43, 49, 50, 49, 53, 0, 43, 49, 51, 52, 53, 0, 43, 49, 50, 52, 53, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 52, 53, 62, 45, 49, 50, 58, 52, 53, 60, 43, 49, 51, 52, 53, 62, 44, 77, 57, 46, 53, 46, 48, 47, 50, 58, 52, 53, 44, 77, 52, 46, 49, 46, 48, 47, 51, 58, 52, 53, 10},
+
+ "zoneinfo/Pacific/Chuuk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 142, 76, 0, 0, 0, 0, 140, 160, 0, 4, 76, 77, 84, 0, 43, 49, 48, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Pacific/Easter": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 7, 0, 0, 0, 20, 128, 0, 0, 0, 185, 199, 64, 136, 253, 209, 60, 64, 254, 146, 250, 176, 255, 204, 205, 192, 0, 114, 220, 176, 1, 117, 80, 192, 2, 64, 73, 176, 3, 85, 50, 192, 4, 32, 43, 176, 5, 62, 79, 64, 6, 0, 13, 176, 7, 11, 188, 64, 7, 223, 239, 176, 8, 254, 19, 64, 9, 191, 209, 176, 10, 221, 245, 64, 11, 168, 238, 48, 12, 189, 215, 64, 13, 136, 208, 48, 14, 157, 185, 64, 15, 104, 178, 48, 16, 134, 213, 192, 17, 72, 148, 48, 18, 102, 183, 192, 19, 40, 118, 48, 20, 70, 153, 192, 21, 17, 146, 176, 22, 38, 123, 192, 22, 241, 116, 176, 24, 6, 93, 192, 24, 209, 86, 176, 25, 230, 63, 192, 26, 177, 56, 176, 27, 207, 92, 64, 28, 145, 26, 176, 29, 175, 62, 64, 30, 112, 252, 176, 31, 143, 32, 64, 32, 127, 3, 48, 33, 111, 2, 64, 34, 57, 251, 48, 35, 78, 228, 64, 36, 25, 221, 48, 37, 56, 0, 192, 37, 249, 191, 48, 38, 242, 248, 192, 39, 217, 161, 48, 40, 247, 196, 192, 41, 194, 189, 176, 42, 215, 166, 192, 43, 162, 159, 176, 44, 183, 136, 192, 45, 130, 129, 176, 46, 151, 106, 192, 47, 98, 99, 176, 48, 128, 135, 64, 49, 66, 69, 176, 50, 96, 105, 64, 51, 61, 215, 48, 52, 64, 75, 64, 53, 11, 68, 48, 54, 13, 184, 64, 55, 6, 213, 176, 56, 0, 15, 64, 56, 203, 8, 48, 57, 233, 43, 192, 58, 170, 234, 48, 59, 201, 13, 192, 60, 138, 204, 48, 61, 168, 239, 192, 62, 106, 174, 48, 63, 136, 209, 192, 64, 83, 202, 176, 65, 104, 179, 192, 66, 51, 172, 176, 67, 72, 149, 192, 68, 19, 142, 176, 69, 49, 178, 64, 69, 243, 112, 176, 71, 17, 148, 64, 71, 239, 2, 48, 72, 241, 118, 64, 73, 188, 111, 48, 74, 209, 88, 64, 75, 184, 0, 176, 76, 177, 58, 64, 77, 198, 7, 48, 78, 80, 130, 192, 79, 156, 174, 176, 80, 66, 217, 192, 81, 124, 144, 176, 82, 43, 246, 64, 83, 92, 114, 176, 84, 11, 216, 64, 87, 55, 230, 48, 87, 175, 236, 192, 89, 23, 200, 48, 89, 143, 206, 192, 90, 247, 170, 48, 91, 111, 176, 192, 92, 215, 140, 48, 93, 79, 146, 192, 94, 183, 110, 48, 95, 47, 116, 192, 96, 151, 80, 48, 97, 24, 145, 64, 98, 128, 108, 176, 98, 248, 115, 64, 100, 96, 78, 176, 100, 216, 85, 64, 102, 64, 48, 176, 102, 184, 55, 64, 104, 32, 18, 176, 104, 152, 25, 64, 105, 255, 244, 176, 106, 119, 251, 64, 107, 223, 214, 176, 108, 97, 23, 192, 109, 200, 243, 48, 110, 64, 249, 192, 111, 168, 213, 48, 112, 32, 219, 192, 113, 136, 183, 48, 114, 0, 189, 192, 115, 104, 153, 48, 115, 224, 159, 192, 117, 72, 123, 48, 117, 201, 188, 64, 119, 49, 151, 176, 119, 169, 158, 64, 121, 17, 121, 176, 121, 137, 128, 64, 122, 241, 91, 176, 123, 105, 98, 64, 124, 209, 61, 176, 125, 73, 68, 64, 126, 177, 31, 176, 127, 41, 38, 64, 127, 255, 255, 255, 1, 4, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 255, 255, 153, 120, 0, 0, 255, 255, 153, 120, 0, 4, 255, 255, 171, 160, 1, 8, 255, 255, 157, 144, 0, 12, 255, 255, 157, 144, 0, 12, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 16, 76, 77, 84, 0, 69, 77, 84, 0, 45, 48, 54, 0, 45, 48, 55, 0, 45, 48, 53, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 10, 60, 45, 48, 54, 62, 54, 60, 45, 48, 53, 62, 44, 77, 56, 46, 50, 46, 54, 47, 50, 50, 44, 77, 53, 46, 50, 46, 54, 47, 50, 50, 10},
+
+ "zoneinfo/Pacific/Efate": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 146, 245, 194, 180, 25, 210, 247, 208, 26, 194, 218, 192, 27, 218, 102, 208, 28, 162, 188, 192, 29, 155, 246, 80, 30, 130, 158, 192, 31, 123, 216, 80, 32, 107, 187, 64, 33, 91, 186, 80, 34, 75, 157, 64, 35, 59, 156, 80, 36, 43, 127, 64, 37, 27, 126, 80, 38, 11, 97, 64, 38, 251, 96, 80, 39, 235, 67, 64, 40, 228, 124, 208, 41, 129, 81, 64, 42, 233, 72, 208, 43, 97, 51, 64, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 0, 0, 157, 204, 0, 0, 0, 0, 168, 192, 1, 4, 0, 0, 154, 176, 0, 8, 76, 77, 84, 0, 43, 49, 50, 0, 43, 49, 49, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Enderbury": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 18, 86, 4, 192, 47, 6, 139, 48, 127, 255, 255, 255, 1, 2, 3, 3, 255, 255, 95, 156, 0, 0, 255, 255, 87, 64, 0, 4, 255, 255, 101, 80, 0, 8, 0, 0, 182, 208, 0, 12, 76, 77, 84, 0, 45, 49, 50, 0, 45, 49, 49, 0, 43, 49, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 51, 62, 45, 49, 51, 10},
+
+ "zoneinfo/Pacific/Fakaofo": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 78, 253, 153, 176, 127, 255, 255, 255, 1, 2, 2, 255, 255, 95, 120, 0, 0, 255, 255, 101, 80, 0, 4, 0, 0, 182, 208, 0, 8, 76, 77, 84, 0, 45, 49, 49, 0, 43, 49, 51, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 51, 62, 45, 49, 51, 10},
+
+ "zoneinfo/Pacific/Fiji": []byte{84, 90, 105, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 154, 19, 177, 192, 54, 59, 23, 224, 54, 215, 250, 96, 56, 36, 52, 96, 56, 183, 220, 96, 75, 17, 44, 224, 75, 174, 15, 96, 76, 194, 234, 96, 77, 114, 65, 224, 78, 162, 204, 96, 79, 26, 196, 224, 80, 130, 174, 96, 80, 250, 166, 224, 82, 107, 202, 224, 82, 218, 122, 208, 84, 84, 231, 96, 84, 186, 106, 224, 86, 52, 201, 96, 86, 154, 76, 224, 88, 29, 229, 224, 88, 122, 46, 224, 89, 253, 199, 224, 90, 90, 16, 224, 91, 221, 169, 224, 92, 67, 45, 96, 93, 189, 139, 224, 94, 35, 15, 96, 95, 157, 109, 224, 96, 2, 241, 96, 97, 134, 138, 96, 97, 226, 211, 96, 99, 102, 108, 96, 99, 194, 181, 96, 101, 70, 78, 96, 101, 162, 151, 96, 103, 38, 48, 96, 103, 139, 179, 224, 105, 6, 18, 96, 105, 107, 149, 224, 106, 229, 244, 96, 107, 75, 119, 224, 108, 207, 16, 224, 109, 43, 89, 224, 110, 174, 242, 224, 111, 11, 59, 224, 112, 142, 212, 224, 112, 244, 88, 96, 114, 110, 182, 224, 114, 212, 58, 96, 116, 78, 152, 224, 116, 180, 28, 96, 118, 55, 181, 96, 118, 147, 254, 96, 120, 23, 151, 96, 120, 115, 224, 96, 121, 247, 121, 96, 122, 83, 194, 96, 123, 215, 91, 96, 124, 60, 222, 224, 125, 183, 61, 96, 126, 28, 192, 224, 127, 151, 31, 96, 127, 252, 162, 224, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 0, 0, 167, 192, 0, 0, 0, 0, 182, 208, 1, 4, 0, 0, 168, 192, 0, 8, 76, 77, 84, 0, 43, 49, 51, 0, 43, 49, 50, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 60, 43, 49, 51, 62, 44, 77, 49, 49, 46, 49, 46, 48, 44, 77, 49, 46, 50, 46, 49, 47, 49, 52, 55, 10},
+
+ "zoneinfo/Pacific/Funafuti": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 168, 4, 0, 0, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 43, 49, 50, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Pacific/Galapagos": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 182, 164, 76, 128, 30, 24, 196, 80, 43, 23, 10, 224, 43, 113, 244, 80, 127, 255, 255, 255, 0, 1, 3, 2, 3, 3, 255, 255, 172, 0, 0, 0, 255, 255, 185, 176, 0, 4, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 45, 48, 53, 0, 45, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 54, 62, 54, 10},
+
+ "zoneinfo/Pacific/Gambier": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 148, 80, 72, 4, 127, 255, 255, 255, 0, 1, 1, 255, 255, 129, 124, 0, 0, 255, 255, 129, 112, 0, 4, 76, 77, 84, 0, 45, 48, 57, 0, 0, 0, 0, 0, 10, 60, 45, 48, 57, 62, 57, 10},
+
+ "zoneinfo/Pacific/Guadalcanal": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 148, 79, 51, 140, 127, 255, 255, 255, 0, 1, 1, 0, 0, 149, 244, 0, 0, 0, 0, 154, 176, 0, 4, 76, 77, 84, 0, 43, 49, 49, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Guam": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 13, 128, 0, 0, 0, 58, 67, 94, 96, 1, 2, 0, 0, 135, 180, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 140, 160, 0, 8, 76, 77, 84, 0, 71, 83, 84, 0, 67, 104, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 104, 83, 84, 45, 49, 48, 10},
+
+ "zoneinfo/Pacific/Honolulu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 187, 5, 67, 72, 187, 33, 113, 88, 203, 137, 61, 200, 210, 97, 73, 56, 213, 141, 115, 72, 1, 2, 1, 2, 1, 3, 255, 255, 108, 2, 0, 0, 255, 255, 108, 88, 0, 4, 255, 255, 122, 104, 1, 8, 255, 255, 115, 96, 0, 4, 76, 77, 84, 0, 72, 83, 84, 0, 72, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 72, 83, 84, 49, 48, 10},
+
+ "zoneinfo/Pacific/Johnston": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 187, 5, 67, 72, 187, 33, 113, 88, 203, 137, 61, 200, 210, 97, 73, 56, 213, 141, 115, 72, 1, 2, 1, 2, 1, 3, 255, 255, 108, 2, 0, 0, 255, 255, 108, 88, 0, 4, 255, 255, 122, 104, 1, 8, 255, 255, 115, 96, 0, 4, 76, 77, 84, 0, 72, 83, 84, 0, 72, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 72, 83, 84, 49, 48, 10},
+
+ "zoneinfo/Pacific/Kiritimati": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 18, 85, 242, 0, 47, 6, 125, 32, 127, 255, 255, 255, 1, 2, 3, 3, 255, 255, 108, 128, 0, 0, 255, 255, 106, 0, 0, 4, 255, 255, 115, 96, 0, 10, 0, 0, 196, 224, 0, 14, 76, 77, 84, 0, 45, 49, 48, 52, 48, 0, 45, 49, 48, 0, 43, 49, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 52, 62, 45, 49, 52, 10},
+
+ "zoneinfo/Pacific/Kosrae": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 255, 134, 27, 80, 54, 139, 103, 64, 127, 255, 255, 255, 1, 2, 1, 1, 0, 0, 152, 204, 0, 0, 0, 0, 154, 176, 0, 4, 0, 0, 168, 192, 0, 8, 0, 0, 154, 176, 0, 4, 76, 77, 84, 0, 43, 49, 49, 0, 43, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Kwajalein": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 255, 134, 27, 80, 44, 116, 188, 192, 127, 255, 255, 255, 1, 2, 3, 3, 0, 0, 156, 224, 0, 0, 0, 0, 154, 176, 0, 4, 255, 255, 87, 64, 0, 8, 0, 0, 168, 192, 0, 12, 76, 77, 84, 0, 43, 49, 49, 0, 45, 49, 50, 0, 43, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Pacific/Majuro": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 12, 128, 0, 0, 0, 255, 134, 27, 80, 127, 255, 255, 255, 1, 2, 2, 0, 0, 160, 128, 0, 0, 0, 0, 154, 176, 0, 4, 0, 0, 168, 192, 0, 8, 76, 77, 84, 0, 43, 49, 49, 0, 43, 49, 50, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Pacific/Marquesas": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 10, 128, 0, 0, 0, 148, 80, 76, 72, 127, 255, 255, 255, 0, 1, 1, 255, 255, 125, 56, 0, 0, 255, 255, 122, 104, 0, 4, 76, 77, 84, 0, 45, 48, 57, 51, 48, 0, 0, 0, 0, 0, 10, 60, 45, 48, 57, 51, 48, 62, 57, 58, 51, 48, 10},
+
+ "zoneinfo/Pacific/Midway": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 8, 128, 0, 0, 0, 145, 5, 251, 8, 1, 2, 0, 0, 177, 120, 0, 0, 255, 255, 95, 248, 0, 0, 255, 255, 101, 80, 0, 4, 76, 77, 84, 0, 83, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 83, 83, 84, 49, 49, 10},
+
+ "zoneinfo/Pacific/Nauru": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 18, 128, 0, 0, 0, 163, 231, 43, 4, 203, 180, 191, 72, 208, 66, 80, 112, 17, 139, 4, 200, 127, 255, 255, 255, 0, 1, 2, 1, 3, 3, 0, 0, 156, 124, 0, 0, 0, 0, 161, 184, 0, 4, 0, 0, 126, 144, 0, 10, 0, 0, 168, 192, 0, 14, 76, 77, 84, 0, 43, 49, 49, 51, 48, 0, 43, 48, 57, 0, 43, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Pacific/Niue": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 20, 128, 0, 0, 0, 220, 67, 53, 96, 16, 116, 202, 56, 127, 255, 255, 255, 1, 2, 3, 3, 255, 255, 96, 180, 0, 0, 255, 255, 96, 160, 0, 4, 255, 255, 94, 72, 0, 10, 255, 255, 101, 80, 0, 16, 76, 77, 84, 0, 45, 49, 49, 50, 48, 0, 45, 49, 49, 51, 48, 0, 45, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 49, 49, 62, 49, 49, 10},
+
+ "zoneinfo/Pacific/Norfolk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 26, 128, 0, 0, 0, 220, 65, 248, 128, 9, 15, 202, 104, 9, 181, 217, 88, 86, 15, 230, 104, 127, 255, 255, 255, 1, 2, 3, 2, 4, 4, 0, 0, 157, 120, 0, 0, 0, 0, 157, 128, 0, 4, 0, 0, 161, 184, 0, 10, 0, 0, 175, 200, 1, 16, 0, 0, 154, 176, 0, 22, 76, 77, 84, 0, 43, 49, 49, 49, 50, 0, 43, 49, 49, 51, 48, 0, 43, 49, 50, 51, 48, 0, 43, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Noumea": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 5, 0, 0, 0, 12, 128, 0, 0, 0, 146, 245, 196, 116, 14, 230, 186, 80, 15, 86, 187, 192, 16, 198, 156, 80, 17, 55, 239, 64, 50, 160, 75, 240, 51, 24, 68, 112, 127, 255, 255, 255, 0, 2, 1, 2, 1, 2, 3, 4, 4, 0, 0, 156, 12, 0, 0, 0, 0, 168, 192, 1, 4, 0, 0, 154, 176, 0, 8, 0, 0, 168, 192, 1, 4, 0, 0, 154, 176, 0, 8, 76, 77, 84, 0, 43, 49, 50, 0, 43, 49, 49, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Pago_Pago": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 8, 128, 0, 0, 0, 145, 5, 251, 8, 1, 2, 0, 0, 177, 120, 0, 0, 255, 255, 95, 248, 0, 0, 255, 255, 101, 80, 0, 4, 76, 77, 84, 0, 83, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 83, 83, 84, 49, 49, 10},
+
+ "zoneinfo/Pacific/Palau": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 126, 20, 0, 0, 0, 0, 126, 144, 0, 4, 76, 77, 84, 0, 43, 48, 57, 0, 0, 0, 0, 0, 10, 60, 43, 48, 57, 62, 45, 57, 10},
+
+ "zoneinfo/Pacific/Pitcairn": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 14, 128, 0, 0, 0, 53, 68, 66, 8, 127, 255, 255, 255, 1, 2, 2, 255, 255, 134, 12, 0, 0, 255, 255, 136, 120, 0, 4, 255, 255, 143, 128, 0, 10, 76, 77, 84, 0, 45, 48, 56, 51, 48, 0, 45, 48, 56, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 48, 56, 62, 56, 10},
+
+ "zoneinfo/Pacific/Pohnpei": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 148, 84, 0, 0, 0, 0, 154, 176, 0, 4, 76, 77, 84, 0, 43, 49, 49, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Ponape": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 148, 84, 0, 0, 0, 0, 154, 176, 0, 4, 76, 77, 84, 0, 43, 49, 49, 0, 0, 0, 0, 0, 10, 60, 43, 49, 49, 62, 45, 49, 49, 10},
+
+ "zoneinfo/Pacific/Port_Moresby": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 9, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 137, 240, 0, 0, 0, 0, 140, 160, 0, 5, 80, 77, 77, 84, 0, 43, 49, 48, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Pacific/Rarotonga": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 4, 0, 0, 0, 20, 128, 0, 0, 0, 16, 172, 27, 40, 17, 63, 181, 24, 18, 121, 129, 32, 19, 31, 151, 24, 20, 89, 99, 32, 20, 255, 121, 24, 22, 57, 69, 32, 22, 232, 149, 152, 24, 34, 97, 160, 24, 200, 119, 152, 26, 2, 67, 160, 26, 168, 89, 152, 27, 226, 37, 160, 28, 136, 59, 152, 29, 194, 7, 160, 30, 104, 29, 152, 31, 161, 233, 160, 32, 71, 255, 152, 33, 129, 203, 160, 34, 49, 28, 24, 35, 106, 232, 32, 36, 16, 254, 24, 37, 74, 202, 32, 37, 240, 224, 24, 39, 42, 172, 32, 39, 208, 194, 24, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 255, 255, 106, 56, 0, 0, 255, 255, 108, 88, 0, 4, 255, 255, 115, 96, 0, 10, 255, 255, 122, 104, 1, 14, 76, 77, 84, 0, 45, 49, 48, 51, 48, 0, 45, 49, 48, 0, 45, 48, 57, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 45, 49, 48, 62, 49, 48, 10},
+
+ "zoneinfo/Pacific/Saipan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 13, 128, 0, 0, 0, 58, 67, 94, 96, 1, 2, 0, 0, 135, 180, 0, 0, 0, 0, 140, 160, 0, 4, 0, 0, 140, 160, 0, 8, 76, 77, 84, 0, 71, 83, 84, 0, 67, 104, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 67, 104, 83, 84, 45, 49, 48, 10},
+
+ "zoneinfo/Pacific/Samoa": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 8, 128, 0, 0, 0, 145, 5, 251, 8, 1, 2, 0, 0, 177, 120, 0, 0, 255, 255, 95, 248, 0, 0, 255, 255, 101, 80, 0, 4, 76, 77, 84, 0, 83, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 83, 83, 84, 49, 49, 10},
+
+ "zoneinfo/Pacific/Tahiti": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 148, 80, 85, 184, 127, 255, 255, 255, 0, 1, 1, 255, 255, 115, 200, 0, 0, 255, 255, 115, 96, 0, 4, 76, 77, 84, 0, 45, 49, 48, 0, 0, 0, 0, 0, 10, 60, 45, 49, 48, 62, 49, 48, 10},
+
+ "zoneinfo/Pacific/Tarawa": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 162, 52, 0, 0, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 43, 49, 50, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Pacific/Tongatapu": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 18, 128, 0, 0, 0, 201, 115, 66, 144, 55, 251, 71, 208, 56, 211, 125, 208, 58, 4, 8, 80, 58, 114, 184, 64, 59, 227, 234, 80, 60, 82, 154, 64, 88, 29, 215, 208, 88, 122, 32, 208, 127, 255, 255, 255, 1, 2, 3, 4, 5, 2, 5, 2, 5, 2, 2, 0, 0, 173, 72, 0, 0, 0, 0, 173, 112, 0, 4, 0, 0, 182, 208, 0, 10, 0, 0, 196, 224, 1, 14, 0, 0, 182, 208, 0, 10, 0, 0, 196, 224, 1, 14, 76, 77, 84, 0, 43, 49, 50, 50, 48, 0, 43, 49, 51, 0, 43, 49, 52, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 49, 51, 62, 45, 49, 51, 10},
+
+ "zoneinfo/Pacific/Truk": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 142, 76, 0, 0, 0, 0, 140, 160, 0, 4, 76, 77, 84, 0, 43, 49, 48, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Pacific/Wake": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 156, 52, 0, 0, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 43, 49, 50, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Pacific/Wallis": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 172, 88, 0, 0, 0, 0, 168, 192, 0, 4, 76, 77, 84, 0, 43, 49, 50, 0, 0, 0, 0, 0, 10, 60, 43, 49, 50, 62, 45, 49, 50, 10},
+
+ "zoneinfo/Pacific/Yap": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 128, 0, 0, 0, 127, 255, 255, 255, 1, 1, 0, 0, 142, 76, 0, 0, 0, 0, 140, 160, 0, 4, 76, 77, 84, 0, 43, 49, 48, 0, 0, 0, 0, 0, 10, 60, 43, 49, 48, 62, 45, 49, 48, 10},
+
+ "zoneinfo/Poland": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 11, 0, 0, 0, 26, 128, 0, 0, 0, 153, 168, 42, 208, 155, 12, 23, 96, 155, 213, 218, 240, 156, 217, 174, 144, 157, 164, 181, 144, 158, 185, 144, 144, 159, 132, 151, 144, 160, 154, 182, 0, 161, 101, 189, 0, 166, 125, 124, 96, 200, 118, 222, 16, 204, 231, 75, 16, 205, 169, 23, 144, 206, 162, 67, 16, 207, 146, 52, 16, 208, 128, 169, 96, 208, 132, 186, 0, 209, 149, 146, 112, 210, 138, 187, 96, 211, 98, 255, 112, 212, 75, 35, 144, 213, 94, 173, 16, 214, 41, 180, 16, 215, 44, 26, 16, 216, 9, 150, 16, 217, 2, 193, 144, 217, 233, 120, 16, 232, 84, 210, 0, 232, 241, 180, 128, 233, 225, 165, 128, 234, 209, 150, 128, 236, 20, 150, 0, 236, 186, 179, 0, 237, 170, 164, 0, 238, 154, 149, 0, 239, 212, 90, 0, 240, 122, 119, 0, 241, 180, 60, 0, 242, 90, 89, 0, 243, 148, 30, 0, 244, 58, 59, 0, 245, 125, 58, 128, 246, 26, 29, 0, 13, 42, 253, 112, 13, 164, 85, 128, 14, 139, 12, 0, 15, 132, 55, 128, 16, 116, 40, 128, 17, 100, 25, 128, 18, 84, 10, 128, 19, 77, 54, 0, 20, 51, 236, 128, 21, 35, 221, 128, 22, 19, 206, 128, 23, 3, 191, 128, 23, 243, 176, 128, 24, 227, 161, 128, 25, 211, 146, 128, 26, 195, 131, 128, 27, 188, 175, 0, 28, 172, 160, 0, 29, 156, 145, 0, 30, 140, 130, 0, 31, 124, 115, 0, 32, 108, 100, 0, 33, 92, 85, 0, 33, 218, 214, 240, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 1, 3, 2, 3, 4, 5, 4, 8, 6, 7, 3, 2, 5, 4, 5, 4, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 0, 0, 19, 176, 0, 0, 0, 0, 19, 176, 0, 4, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 0, 0, 42, 48, 1, 17, 0, 0, 28, 32, 0, 22, 0, 0, 28, 32, 0, 22, 0, 0, 28, 32, 1, 8, 0, 0, 14, 16, 0, 13, 76, 77, 84, 0, 87, 77, 84, 0, 67, 69, 83, 84, 0, 67, 69, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 67, 69, 84, 45, 49, 67, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 44, 77, 49, 48, 46, 53, 46, 48, 47, 51, 10},
+
+ "zoneinfo/Portugal": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 11, 0, 0, 0, 27, 128, 0, 0, 0, 146, 230, 151, 29, 155, 75, 109, 112, 155, 254, 199, 128, 156, 156, 237, 112, 157, 201, 131, 112, 158, 127, 114, 112, 159, 170, 182, 240, 160, 95, 84, 112, 161, 139, 234, 112, 162, 65, 217, 112, 163, 110, 111, 112, 164, 35, 12, 240, 165, 79, 162, 240, 170, 5, 239, 112, 170, 244, 142, 240, 173, 201, 167, 240, 174, 167, 35, 240, 175, 160, 79, 112, 176, 135, 5, 240, 177, 137, 107, 240, 178, 112, 34, 112, 179, 114, 136, 112, 180, 80, 4, 112, 183, 50, 76, 112, 184, 15, 200, 112, 184, 255, 185, 112, 185, 239, 170, 112, 188, 200, 183, 240, 189, 184, 168, 240, 190, 159, 95, 112, 191, 152, 138, 240, 192, 154, 240, 240, 193, 120, 108, 240, 194, 104, 93, 240, 195, 88, 78, 240, 196, 63, 5, 112, 197, 56, 48, 240, 198, 58, 150, 240, 199, 88, 172, 112, 199, 217, 223, 112, 201, 1, 47, 112, 201, 241, 32, 112, 202, 226, 98, 240, 203, 181, 82, 240, 203, 236, 163, 224, 204, 128, 75, 224, 204, 220, 162, 240, 205, 149, 52, 240, 205, 195, 75, 96, 206, 114, 162, 224, 206, 197, 191, 112, 207, 117, 22, 240, 207, 172, 103, 224, 208, 82, 132, 224, 208, 165, 161, 112, 209, 84, 248, 240, 209, 140, 73, 224, 210, 50, 102, 224, 210, 133, 131, 112, 211, 89, 196, 240, 212, 73, 181, 240, 213, 57, 209, 32, 214, 41, 194, 32, 215, 25, 179, 32, 216, 9, 164, 32, 216, 249, 149, 32, 217, 233, 134, 32, 220, 185, 89, 32, 221, 178, 132, 160, 222, 162, 117, 160, 223, 146, 102, 160, 224, 130, 87, 160, 225, 114, 72, 160, 226, 98, 57, 160, 227, 82, 42, 160, 228, 66, 27, 160, 229, 50, 12, 160, 230, 33, 253, 160, 231, 27, 41, 32, 232, 11, 26, 32, 232, 251, 11, 32, 233, 234, 252, 32, 234, 218, 237, 32, 235, 202, 222, 32, 236, 186, 207, 32, 237, 170, 192, 32, 238, 154, 177, 32, 239, 138, 162, 32, 240, 122, 147, 32, 241, 106, 132, 32, 242, 99, 175, 160, 243, 83, 160, 160, 244, 67, 145, 160, 245, 51, 130, 160, 246, 35, 115, 160, 247, 19, 100, 160, 248, 3, 85, 160, 248, 243, 70, 160, 12, 171, 42, 0, 13, 155, 27, 0, 14, 139, 12, 0, 15, 132, 55, 128, 16, 116, 40, 128, 17, 100, 25, 128, 18, 84, 24, 144, 19, 67, 251, 128, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 189, 160, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 4, 3, 5, 3, 4, 3, 5, 3, 4, 3, 5, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 7, 8, 7, 8, 7, 8, 7, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 255, 255, 247, 99, 0, 0, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 0, 0, 28, 32, 1, 13, 0, 0, 14, 16, 0, 18, 0, 0, 14, 16, 0, 18, 0, 0, 28, 32, 1, 22, 0, 0, 14, 16, 1, 4, 0, 0, 0, 0, 0, 9, 76, 77, 84, 0, 87, 69, 83, 84, 0, 87, 69, 84, 0, 87, 69, 77, 84, 0, 67, 69, 84, 0, 67, 69, 83, 84, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/ROC": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 5, 0, 0, 0, 16, 128, 0, 0, 0, 195, 85, 73, 128, 210, 84, 89, 128, 211, 139, 123, 128, 212, 66, 173, 240, 213, 69, 34, 0, 214, 76, 191, 240, 215, 60, 191, 0, 216, 6, 102, 112, 217, 29, 242, 128, 217, 231, 153, 240, 218, 255, 38, 0, 219, 200, 205, 112, 220, 224, 89, 128, 221, 170, 0, 240, 222, 114, 115, 0, 223, 181, 100, 112, 224, 124, 133, 0, 225, 150, 151, 240, 226, 93, 184, 128, 227, 119, 203, 112, 228, 62, 236, 0, 229, 48, 32, 112, 230, 33, 113, 0, 231, 18, 165, 112, 232, 2, 164, 128, 232, 243, 216, 240, 233, 227, 216, 0, 234, 213, 12, 112, 235, 197, 11, 128, 236, 182, 63, 240, 237, 247, 252, 0, 238, 152, 196, 240, 239, 217, 47, 128, 240, 121, 248, 112, 7, 252, 86, 0, 8, 237, 138, 112, 9, 221, 137, 128, 10, 206, 189, 240, 17, 219, 161, 128, 18, 84, 221, 112, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, 0, 113, 232, 0, 0, 0, 0, 112, 128, 0, 4, 0, 0, 126, 144, 0, 8, 0, 0, 126, 144, 1, 12, 0, 0, 112, 128, 0, 4, 76, 77, 84, 0, 67, 83, 84, 0, 74, 83, 84, 0, 67, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 83, 84, 45, 56, 10},
+
+ "zoneinfo/ROK": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 6, 0, 0, 0, 16, 128, 0, 0, 0, 139, 215, 240, 120, 146, 230, 22, 248, 210, 67, 39, 240, 226, 79, 41, 240, 228, 107, 183, 248, 229, 19, 24, 104, 230, 98, 3, 120, 231, 17, 76, 232, 232, 47, 112, 120, 232, 231, 244, 104, 234, 15, 82, 120, 234, 199, 214, 104, 235, 239, 52, 120, 236, 167, 184, 104, 237, 207, 22, 120, 238, 135, 154, 104, 240, 53, 113, 120, 32, 163, 96, 144, 33, 110, 103, 144, 34, 131, 66, 144, 35, 78, 73, 144, 0, 1, 2, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 3, 5, 3, 5, 3, 0, 0, 119, 8, 0, 0, 0, 0, 119, 136, 0, 4, 0, 0, 126, 144, 0, 8, 0, 0, 126, 144, 0, 4, 0, 0, 133, 152, 1, 12, 0, 0, 140, 160, 1, 12, 76, 77, 84, 0, 75, 83, 84, 0, 74, 83, 84, 0, 75, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 75, 83, 84, 45, 57, 10},
+
+ "zoneinfo/Singapore": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 32, 128, 0, 0, 0, 134, 131, 133, 163, 186, 103, 78, 144, 192, 10, 228, 96, 202, 179, 229, 96, 203, 145, 95, 8, 210, 72, 109, 240, 22, 145, 245, 8, 127, 255, 255, 255, 1, 2, 3, 4, 5, 6, 5, 7, 7, 0, 0, 97, 93, 0, 0, 0, 0, 97, 93, 0, 4, 0, 0, 98, 112, 0, 8, 0, 0, 103, 32, 1, 12, 0, 0, 103, 32, 0, 12, 0, 0, 105, 120, 0, 18, 0, 0, 126, 144, 0, 24, 0, 0, 112, 128, 0, 28, 76, 77, 84, 0, 83, 77, 84, 0, 43, 48, 55, 0, 43, 48, 55, 50, 48, 0, 43, 48, 55, 51, 48, 0, 43, 48, 57, 0, 43, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 43, 48, 56, 62, 45, 56, 10},
+
+ "zoneinfo/Turkey": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 11, 0, 0, 0, 25, 128, 0, 0, 0, 144, 139, 245, 152, 155, 12, 23, 96, 155, 213, 190, 208, 162, 101, 99, 224, 163, 123, 130, 80, 164, 78, 128, 96, 165, 63, 180, 208, 166, 37, 39, 224, 167, 39, 127, 208, 170, 40, 40, 96, 170, 225, 253, 208, 171, 249, 137, 224, 172, 195, 49, 80, 200, 127, 238, 96, 200, 255, 193, 208, 201, 74, 245, 96, 202, 206, 128, 80, 203, 203, 174, 96, 204, 229, 193, 80, 209, 113, 235, 224, 210, 107, 9, 80, 211, 162, 57, 96, 212, 67, 2, 80, 213, 76, 13, 224, 214, 41, 123, 208, 215, 43, 239, 224, 216, 9, 93, 208, 217, 2, 151, 96, 217, 233, 63, 208, 218, 239, 168, 96, 219, 210, 92, 80, 220, 212, 208, 96, 221, 179, 143, 208, 241, 244, 185, 96, 242, 100, 186, 208, 245, 104, 6, 96, 246, 31, 56, 208, 0, 160, 186, 224, 1, 107, 179, 208, 2, 128, 156, 224, 3, 75, 149, 208, 4, 105, 185, 96, 5, 52, 178, 80, 6, 110, 147, 112, 7, 57, 168, 128, 7, 251, 117, 0, 9, 25, 166, 160, 9, 219, 58, 224, 10, 240, 7, 208, 12, 16, 206, 96, 12, 217, 36, 80, 13, 164, 57, 96, 14, 166, 145, 80, 15, 132, 27, 96, 16, 134, 115, 80, 18, 103, 152, 192, 19, 77, 54, 0, 20, 71, 122, 192, 21, 35, 221, 128, 22, 39, 92, 192, 23, 3, 191, 128, 24, 7, 62, 192, 25, 137, 148, 80, 25, 220, 148, 192, 28, 198, 211, 208, 29, 155, 21, 80, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 229, 9, 112, 41, 212, 250, 112, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 139, 131, 240, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 69, 152, 50, 224, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 143, 221, 144, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 56, 190, 16, 84, 76, 71, 144, 85, 23, 78, 144, 86, 62, 158, 144, 86, 247, 48, 144, 87, 207, 46, 80, 127, 255, 255, 255, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 2, 3, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 3, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 5, 5, 0, 0, 27, 40, 0, 0, 0, 0, 27, 104, 0, 4, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 21, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 1, 8, 0, 0, 28, 32, 0, 13, 0, 0, 42, 48, 0, 21, 76, 77, 84, 0, 73, 77, 84, 0, 69, 69, 83, 84, 0, 69, 69, 84, 0, 43, 48, 52, 0, 43, 48, 51, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 10, 60, 43, 48, 51, 62, 45, 51, 10},
+
+ "zoneinfo/UCT": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 67, 84, 0, 0, 0, 10, 85, 67, 84, 48, 10},
+
+ "zoneinfo/US/Alaska": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 9, 0, 0, 0, 40, 128, 0, 0, 0, 203, 137, 54, 192, 210, 35, 244, 112, 210, 97, 66, 48, 250, 210, 71, 160, 254, 184, 99, 64, 255, 168, 70, 48, 0, 152, 69, 64, 1, 136, 40, 48, 2, 120, 39, 64, 3, 113, 68, 176, 4, 97, 67, 192, 5, 81, 38, 176, 6, 65, 37, 192, 7, 49, 8, 176, 7, 141, 95, 192, 9, 16, 234, 176, 9, 173, 219, 64, 10, 240, 204, 176, 11, 224, 203, 192, 12, 217, 233, 48, 13, 192, 173, 192, 14, 185, 203, 48, 15, 169, 202, 64, 16, 153, 173, 48, 17, 137, 172, 64, 18, 121, 143, 48, 19, 105, 142, 64, 20, 89, 113, 48, 21, 73, 112, 64, 22, 57, 83, 48, 23, 41, 82, 64, 24, 34, 111, 176, 25, 9, 52, 64, 26, 2, 81, 176, 26, 43, 20, 16, 26, 242, 66, 176, 27, 226, 37, 160, 28, 210, 36, 176, 29, 194, 7, 160, 30, 178, 6, 176, 31, 161, 233, 160, 32, 118, 57, 48, 33, 129, 203, 160, 34, 86, 27, 48, 35, 106, 232, 32, 36, 53, 253, 48, 37, 74, 202, 32, 38, 21, 223, 48, 39, 42, 172, 32, 39, 254, 251, 176, 41, 10, 142, 32, 41, 222, 221, 176, 42, 234, 112, 32, 43, 190, 191, 176, 44, 211, 140, 160, 45, 158, 161, 176, 46, 179, 110, 160, 47, 126, 131, 176, 48, 147, 80, 160, 49, 103, 160, 48, 50, 115, 50, 160, 51, 71, 130, 48, 52, 83, 20, 160, 53, 39, 100, 48, 54, 50, 246, 160, 55, 7, 70, 48, 56, 28, 19, 32, 56, 231, 40, 48, 57, 251, 245, 32, 58, 199, 10, 48, 59, 219, 215, 32, 60, 176, 38, 176, 61, 187, 185, 32, 62, 144, 8, 176, 63, 155, 155, 32, 64, 111, 234, 176, 65, 132, 183, 160, 66, 79, 204, 176, 67, 100, 153, 160, 68, 47, 174, 176, 69, 68, 123, 160, 69, 243, 225, 48, 71, 45, 152, 32, 71, 211, 195, 48, 73, 13, 122, 32, 73, 179, 165, 48, 74, 237, 92, 32, 75, 156, 193, 176, 76, 214, 120, 160, 77, 124, 163, 176, 78, 182, 90, 160, 79, 92, 133, 176, 80, 150, 60, 160, 81, 60, 103, 176, 82, 118, 30, 160, 83, 28, 73, 176, 84, 86, 0, 160, 84, 252, 43, 176, 86, 53, 226, 160, 86, 229, 72, 48, 88, 30, 255, 32, 88, 197, 42, 48, 89, 254, 225, 32, 90, 165, 12, 48, 91, 222, 195, 32, 92, 132, 238, 48, 93, 190, 165, 32, 94, 100, 208, 48, 95, 158, 135, 32, 96, 77, 236, 176, 97, 135, 163, 160, 98, 45, 206, 176, 99, 103, 133, 160, 100, 13, 176, 176, 101, 71, 103, 160, 101, 237, 146, 176, 103, 39, 73, 160, 103, 205, 116, 176, 105, 7, 43, 160, 105, 173, 86, 176, 106, 231, 13, 160, 107, 150, 115, 48, 108, 208, 42, 32, 109, 118, 85, 48, 110, 176, 12, 32, 111, 86, 55, 48, 112, 143, 238, 32, 113, 54, 25, 48, 114, 111, 208, 32, 115, 21, 251, 48, 116, 79, 178, 32, 116, 255, 23, 176, 118, 56, 206, 160, 118, 222, 249, 176, 120, 24, 176, 160, 120, 190, 219, 176, 121, 248, 146, 160, 122, 158, 189, 176, 123, 216, 116, 160, 124, 126, 159, 176, 125, 184, 86, 160, 126, 94, 129, 176, 127, 152, 56, 160, 1, 2, 3, 1, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 115, 120, 0, 0, 255, 255, 115, 96, 0, 4, 255, 255, 129, 112, 1, 8, 255, 255, 129, 112, 1, 12, 255, 255, 115, 96, 0, 16, 255, 255, 129, 112, 1, 21, 255, 255, 129, 112, 0, 26, 255, 255, 143, 128, 1, 30, 255, 255, 129, 112, 0, 35, 76, 77, 84, 0, 65, 83, 84, 0, 65, 87, 84, 0, 65, 80, 84, 0, 65, 72, 83, 84, 0, 65, 72, 68, 84, 0, 89, 83, 84, 0, 65, 75, 68, 84, 0, 65, 75, 83, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 65, 75, 83, 84, 57, 65, 75, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Aleutian": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 9, 0, 0, 0, 33, 128, 0, 0, 0, 203, 137, 68, 208, 210, 35, 244, 112, 210, 97, 80, 64, 250, 210, 85, 176, 254, 184, 113, 80, 255, 168, 84, 64, 0, 152, 83, 80, 1, 136, 54, 64, 2, 120, 53, 80, 3, 113, 82, 192, 4, 97, 81, 208, 5, 81, 52, 192, 6, 65, 51, 208, 7, 49, 22, 192, 7, 141, 109, 208, 9, 16, 248, 192, 9, 173, 233, 80, 10, 240, 218, 192, 11, 224, 217, 208, 12, 217, 247, 64, 13, 192, 187, 208, 14, 185, 217, 64, 15, 169, 216, 80, 16, 153, 187, 64, 17, 137, 186, 80, 18, 121, 157, 64, 19, 105, 156, 80, 20, 89, 127, 64, 21, 73, 126, 80, 22, 57, 97, 64, 23, 41, 96, 80, 24, 34, 125, 192, 25, 9, 66, 80, 26, 2, 95, 192, 26, 43, 34, 32, 26, 242, 80, 192, 27, 226, 51, 176, 28, 210, 50, 192, 29, 194, 21, 176, 30, 178, 20, 192, 31, 161, 247, 176, 32, 118, 71, 64, 33, 129, 217, 176, 34, 86, 41, 64, 35, 106, 246, 48, 36, 54, 11, 64, 37, 74, 216, 48, 38, 21, 237, 64, 39, 42, 186, 48, 39, 255, 9, 192, 41, 10, 156, 48, 41, 222, 235, 192, 42, 234, 126, 48, 43, 190, 205, 192, 44, 211, 154, 176, 45, 158, 175, 192, 46, 179, 124, 176, 47, 126, 145, 192, 48, 147, 94, 176, 49, 103, 174, 64, 50, 115, 64, 176, 51, 71, 144, 64, 52, 83, 34, 176, 53, 39, 114, 64, 54, 51, 4, 176, 55, 7, 84, 64, 56, 28, 33, 48, 56, 231, 54, 64, 57, 252, 3, 48, 58, 199, 24, 64, 59, 219, 229, 48, 60, 176, 52, 192, 61, 187, 199, 48, 62, 144, 22, 192, 63, 155, 169, 48, 64, 111, 248, 192, 65, 132, 197, 176, 66, 79, 218, 192, 67, 100, 167, 176, 68, 47, 188, 192, 69, 68, 137, 176, 69, 243, 239, 64, 71, 45, 166, 48, 71, 211, 209, 64, 73, 13, 136, 48, 73, 179, 179, 64, 74, 237, 106, 48, 75, 156, 207, 192, 76, 214, 134, 176, 77, 124, 177, 192, 78, 182, 104, 176, 79, 92, 147, 192, 80, 150, 74, 176, 81, 60, 117, 192, 82, 118, 44, 176, 83, 28, 87, 192, 84, 86, 14, 176, 84, 252, 57, 192, 86, 53, 240, 176, 86, 229, 86, 64, 88, 31, 13, 48, 88, 197, 56, 64, 89, 254, 239, 48, 90, 165, 26, 64, 91, 222, 209, 48, 92, 132, 252, 64, 93, 190, 179, 48, 94, 100, 222, 64, 95, 158, 149, 48, 96, 77, 250, 192, 97, 135, 177, 176, 98, 45, 220, 192, 99, 103, 147, 176, 100, 13, 190, 192, 101, 71, 117, 176, 101, 237, 160, 192, 103, 39, 87, 176, 103, 205, 130, 192, 105, 7, 57, 176, 105, 173, 100, 192, 106, 231, 27, 176, 107, 150, 129, 64, 108, 208, 56, 48, 109, 118, 99, 64, 110, 176, 26, 48, 111, 86, 69, 64, 112, 143, 252, 48, 113, 54, 39, 64, 114, 111, 222, 48, 115, 22, 9, 64, 116, 79, 192, 48, 116, 255, 37, 192, 118, 56, 220, 176, 118, 223, 7, 192, 120, 24, 190, 176, 120, 190, 233, 192, 121, 248, 160, 176, 122, 158, 203, 192, 123, 216, 130, 176, 124, 126, 173, 192, 125, 184, 100, 176, 126, 94, 143, 192, 127, 152, 70, 176, 1, 2, 3, 1, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 255, 255, 90, 98, 0, 0, 255, 255, 101, 80, 0, 4, 255, 255, 115, 96, 1, 8, 255, 255, 115, 96, 1, 12, 255, 255, 101, 80, 0, 16, 255, 255, 115, 96, 1, 20, 255, 255, 115, 96, 0, 24, 255, 255, 129, 112, 1, 29, 255, 255, 115, 96, 0, 25, 76, 77, 84, 0, 78, 83, 84, 0, 78, 87, 84, 0, 78, 80, 84, 0, 66, 83, 84, 0, 66, 68, 84, 0, 65, 72, 83, 84, 0, 72, 68, 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 72, 83, 84, 49, 48, 72, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Arizona": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, 16, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 203, 137, 12, 144, 207, 23, 223, 28, 207, 143, 229, 172, 208, 129, 26, 28, 250, 248, 117, 16, 251, 232, 88, 0, 2, 1, 2, 1, 2, 3, 2, 3, 2, 1, 2, 255, 255, 150, 238, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 84, 55, 10},
+
+ "zoneinfo/US/Central": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 7, 0, 0, 0, 24, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 162, 203, 116, 0, 163, 131, 247, 240, 164, 69, 210, 128, 165, 99, 217, 240, 166, 83, 217, 0, 167, 21, 151, 112, 168, 51, 187, 0, 168, 254, 179, 240, 170, 19, 157, 0, 170, 222, 149, 240, 171, 243, 127, 0, 172, 190, 119, 240, 173, 211, 97, 0, 174, 158, 89, 240, 175, 179, 67, 0, 176, 126, 59, 240, 177, 156, 95, 128, 178, 103, 88, 112, 179, 124, 65, 128, 180, 71, 58, 112, 181, 92, 35, 128, 182, 39, 28, 112, 183, 60, 5, 128, 184, 6, 254, 112, 185, 27, 231, 128, 185, 230, 224, 112, 187, 5, 4, 0, 187, 198, 194, 112, 188, 228, 230, 0, 189, 175, 222, 240, 190, 196, 200, 0, 191, 143, 192, 240, 192, 90, 214, 0, 193, 176, 60, 112, 194, 132, 140, 0, 195, 79, 132, 240, 196, 100, 110, 0, 197, 47, 102, 240, 198, 77, 138, 128, 199, 15, 72, 240, 200, 45, 108, 128, 200, 248, 101, 112, 202, 13, 78, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 87, 60, 240, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 233, 23, 0, 240, 234, 7, 0, 0, 234, 246, 226, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 159, 195, 112, 241, 143, 194, 128, 242, 127, 165, 112, 243, 111, 164, 128, 244, 95, 135, 112, 245, 79, 134, 128, 246, 63, 105, 112, 247, 47, 104, 128, 248, 40, 133, 240, 249, 15, 74, 128, 250, 8, 103, 240, 250, 248, 103, 0, 251, 232, 73, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 41, 222, 179, 128, 42, 234, 69, 240, 43, 190, 149, 128, 44, 211, 98, 112, 45, 158, 119, 128, 46, 179, 68, 112, 47, 126, 89, 128, 48, 147, 38, 112, 49, 103, 118, 0, 50, 115, 8, 112, 51, 71, 88, 0, 52, 82, 234, 112, 53, 39, 58, 0, 54, 50, 204, 112, 55, 7, 28, 0, 56, 27, 232, 240, 56, 230, 254, 0, 57, 251, 202, 240, 58, 198, 224, 0, 59, 219, 172, 240, 60, 175, 252, 128, 61, 187, 142, 240, 62, 143, 222, 128, 63, 155, 112, 240, 64, 111, 192, 128, 65, 132, 141, 112, 66, 79, 162, 128, 67, 100, 111, 112, 68, 47, 132, 128, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 173, 212, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 0, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 1, 20, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/East-Indiana": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 7, 0, 0, 0, 28, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 202, 87, 34, 128, 202, 216, 71, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 211, 117, 243, 0, 212, 64, 235, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 232, 242, 22, 240, 234, 7, 0, 0, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 255, 255, 175, 58, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 199, 192, 1, 24, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Eastern": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 30, 112, 159, 186, 235, 96, 160, 134, 0, 112, 161, 154, 205, 96, 162, 101, 226, 112, 163, 131, 233, 224, 164, 106, 174, 112, 165, 53, 167, 96, 166, 83, 202, 240, 167, 21, 137, 96, 168, 51, 172, 240, 168, 254, 165, 224, 170, 19, 142, 240, 170, 222, 135, 224, 171, 243, 112, 240, 172, 190, 105, 224, 173, 211, 82, 240, 174, 158, 75, 224, 175, 179, 52, 240, 176, 126, 45, 224, 177, 156, 81, 112, 178, 103, 74, 96, 179, 124, 51, 112, 180, 71, 44, 96, 181, 92, 21, 112, 182, 39, 14, 96, 183, 59, 247, 112, 184, 6, 240, 96, 185, 27, 217, 112, 185, 230, 210, 96, 187, 4, 245, 240, 187, 198, 180, 96, 188, 228, 215, 240, 189, 175, 208, 224, 190, 196, 185, 240, 191, 143, 178, 224, 192, 164, 155, 240, 193, 111, 148, 224, 194, 132, 125, 240, 195, 79, 118, 224, 196, 100, 95, 240, 197, 47, 88, 224, 198, 77, 124, 112, 199, 15, 58, 224, 200, 45, 94, 112, 200, 248, 87, 96, 202, 13, 64, 112, 202, 216, 57, 96, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 211, 117, 228, 240, 212, 64, 221, 224, 213, 85, 198, 240, 214, 32, 191, 224, 215, 53, 168, 240, 216, 0, 161, 224, 217, 21, 138, 240, 217, 224, 131, 224, 218, 254, 167, 112, 219, 192, 101, 224, 220, 222, 137, 112, 221, 169, 130, 96, 222, 190, 107, 112, 223, 137, 100, 96, 224, 158, 77, 112, 225, 105, 70, 96, 226, 126, 47, 112, 227, 73, 40, 96, 228, 94, 17, 112, 229, 87, 46, 224, 230, 71, 45, 240, 231, 55, 16, 224, 232, 39, 15, 240, 233, 22, 242, 224, 234, 6, 241, 240, 234, 246, 212, 224, 235, 230, 211, 240, 236, 214, 182, 224, 237, 198, 181, 240, 238, 191, 211, 96, 239, 175, 210, 112, 240, 159, 181, 96, 241, 143, 180, 112, 242, 127, 151, 96, 243, 111, 150, 112, 244, 95, 121, 96, 245, 79, 120, 112, 246, 63, 91, 96, 247, 47, 90, 112, 248, 40, 119, 224, 249, 15, 60, 112, 250, 8, 89, 224, 250, 248, 88, 240, 251, 232, 59, 224, 252, 216, 58, 240, 253, 200, 29, 224, 254, 184, 28, 240, 255, 167, 255, 224, 0, 151, 254, 240, 1, 135, 225, 224, 2, 119, 224, 240, 3, 112, 254, 96, 4, 96, 253, 112, 5, 80, 224, 96, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 164, 96, 9, 173, 148, 240, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 186, 158, 0, 0, 255, 255, 199, 192, 1, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 76, 77, 84, 0, 69, 68, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Hawaii": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 12, 128, 0, 0, 0, 187, 5, 67, 72, 187, 33, 113, 88, 203, 137, 61, 200, 210, 97, 73, 56, 213, 141, 115, 72, 1, 2, 1, 2, 1, 3, 255, 255, 108, 2, 0, 0, 255, 255, 108, 88, 0, 4, 255, 255, 122, 104, 1, 8, 255, 255, 115, 96, 0, 4, 76, 77, 84, 0, 72, 83, 84, 0, 72, 68, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 72, 83, 84, 49, 48, 10},
+
+ "zoneinfo/US/Indiana-Starke": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 7, 0, 0, 0, 24, 128, 0, 0, 0, 158, 166, 44, 128, 159, 186, 249, 112, 160, 134, 14, 128, 161, 154, 219, 112, 203, 136, 254, 128, 210, 35, 244, 112, 210, 97, 9, 240, 213, 85, 213, 0, 214, 32, 205, 240, 215, 53, 183, 0, 216, 0, 175, 240, 217, 21, 153, 0, 217, 224, 145, 240, 218, 254, 181, 128, 219, 192, 115, 240, 220, 222, 151, 128, 221, 169, 144, 112, 222, 190, 121, 128, 223, 137, 114, 112, 224, 158, 91, 128, 225, 105, 84, 112, 226, 126, 61, 128, 227, 73, 54, 112, 228, 94, 31, 128, 229, 87, 60, 240, 230, 71, 60, 0, 231, 55, 30, 240, 232, 39, 30, 0, 232, 242, 22, 240, 234, 7, 0, 0, 234, 209, 248, 240, 235, 230, 226, 0, 236, 214, 196, 240, 237, 198, 196, 0, 238, 191, 225, 112, 239, 175, 224, 128, 240, 159, 195, 112, 241, 143, 194, 128, 244, 95, 135, 112, 250, 248, 103, 0, 251, 232, 73, 240, 252, 216, 73, 0, 253, 200, 43, 240, 254, 184, 43, 0, 255, 168, 13, 240, 0, 152, 13, 0, 1, 135, 239, 240, 2, 119, 239, 0, 3, 113, 12, 112, 4, 97, 11, 128, 5, 80, 238, 112, 6, 64, 237, 128, 7, 48, 208, 112, 7, 141, 39, 128, 9, 16, 178, 112, 9, 173, 163, 0, 10, 240, 148, 112, 11, 224, 147, 128, 12, 217, 176, 240, 13, 192, 117, 128, 14, 185, 146, 240, 15, 169, 146, 0, 16, 153, 116, 240, 17, 137, 116, 0, 18, 121, 86, 240, 19, 105, 86, 0, 20, 89, 56, 240, 21, 73, 56, 0, 22, 57, 26, 240, 23, 41, 26, 0, 24, 34, 55, 112, 25, 8, 252, 0, 26, 2, 25, 112, 26, 242, 24, 128, 27, 225, 251, 112, 28, 209, 250, 128, 29, 193, 221, 112, 30, 177, 220, 128, 31, 161, 191, 112, 32, 118, 15, 0, 33, 129, 161, 112, 34, 85, 241, 0, 35, 106, 189, 240, 36, 53, 211, 0, 37, 74, 159, 240, 38, 21, 181, 0, 39, 42, 129, 240, 39, 254, 209, 128, 41, 10, 99, 240, 68, 47, 118, 112, 69, 68, 81, 112, 69, 243, 183, 0, 71, 45, 109, 240, 71, 211, 153, 0, 73, 13, 79, 240, 73, 179, 123, 0, 74, 237, 49, 240, 75, 156, 151, 128, 76, 214, 78, 112, 77, 124, 121, 128, 78, 182, 48, 112, 79, 92, 91, 128, 80, 150, 18, 112, 81, 60, 61, 128, 82, 117, 244, 112, 83, 28, 31, 128, 84, 85, 214, 112, 84, 252, 1, 128, 86, 53, 184, 112, 86, 229, 30, 0, 88, 30, 212, 240, 88, 197, 0, 0, 89, 254, 182, 240, 90, 164, 226, 0, 91, 222, 152, 240, 92, 132, 196, 0, 93, 190, 122, 240, 94, 100, 166, 0, 95, 158, 92, 240, 96, 77, 194, 128, 97, 135, 121, 112, 98, 45, 164, 128, 99, 103, 91, 112, 100, 13, 134, 128, 101, 71, 61, 112, 101, 237, 104, 128, 103, 39, 31, 112, 103, 205, 74, 128, 105, 7, 1, 112, 105, 173, 44, 128, 106, 230, 227, 112, 107, 150, 73, 0, 108, 207, 255, 240, 109, 118, 43, 0, 110, 175, 225, 240, 111, 86, 13, 0, 112, 143, 195, 240, 113, 53, 239, 0, 114, 111, 165, 240, 115, 21, 209, 0, 116, 79, 135, 240, 116, 254, 237, 128, 118, 56, 164, 112, 118, 222, 207, 128, 120, 24, 134, 112, 120, 190, 177, 128, 121, 248, 104, 112, 122, 158, 147, 128, 123, 216, 74, 112, 124, 126, 117, 128, 125, 184, 44, 112, 126, 94, 87, 128, 127, 152, 14, 112, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 174, 202, 0, 0, 255, 255, 185, 176, 1, 4, 255, 255, 171, 160, 0, 8, 255, 255, 185, 176, 1, 12, 255, 255, 185, 176, 1, 16, 255, 255, 185, 176, 0, 20, 255, 255, 171, 160, 0, 8, 76, 77, 84, 0, 67, 68, 84, 0, 67, 83, 84, 0, 67, 87, 84, 0, 67, 80, 84, 0, 69, 83, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 67, 83, 84, 54, 67, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Michigan": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 6, 0, 0, 0, 24, 128, 0, 0, 0, 133, 189, 34, 91, 153, 60, 148, 0, 203, 136, 240, 112, 210, 35, 244, 112, 210, 96, 251, 224, 215, 53, 168, 240, 216, 0, 161, 224, 6, 64, 223, 112, 7, 48, 194, 96, 7, 141, 25, 112, 9, 16, 164, 96, 10, 0, 163, 112, 10, 240, 134, 96, 11, 224, 133, 112, 12, 217, 162, 224, 13, 192, 103, 112, 14, 185, 132, 224, 15, 169, 131, 240, 16, 153, 102, 224, 17, 137, 101, 240, 18, 121, 72, 224, 19, 105, 71, 240, 20, 89, 42, 224, 21, 73, 41, 240, 22, 57, 12, 224, 23, 41, 11, 240, 24, 34, 41, 96, 25, 8, 237, 240, 26, 2, 11, 96, 26, 242, 10, 112, 27, 225, 237, 96, 28, 209, 236, 112, 29, 193, 207, 96, 30, 177, 206, 112, 31, 161, 177, 96, 32, 118, 0, 240, 33, 129, 147, 96, 34, 85, 226, 240, 35, 106, 175, 224, 36, 53, 196, 240, 37, 74, 145, 224, 38, 21, 166, 240, 39, 42, 115, 224, 39, 254, 195, 112, 41, 10, 85, 224, 41, 222, 165, 112, 42, 234, 55, 224, 43, 190, 135, 112, 44, 211, 84, 96, 45, 158, 105, 112, 46, 179, 54, 96, 47, 126, 75, 112, 48, 147, 24, 96, 49, 103, 103, 240, 50, 114, 250, 96, 51, 71, 73, 240, 52, 82, 220, 96, 53, 39, 43, 240, 54, 50, 190, 96, 55, 7, 13, 240, 56, 27, 218, 224, 56, 230, 239, 240, 57, 251, 188, 224, 58, 198, 209, 240, 59, 219, 158, 224, 60, 175, 238, 112, 61, 187, 128, 224, 62, 143, 208, 112, 63, 155, 98, 224, 64, 111, 178, 112, 65, 132, 127, 96, 66, 79, 148, 112, 67, 100, 97, 96, 68, 47, 118, 112, 69, 68, 67, 96, 69, 243, 168, 240, 71, 45, 95, 224, 71, 211, 138, 240, 73, 13, 65, 224, 73, 179, 108, 240, 74, 237, 35, 224, 75, 156, 137, 112, 76, 214, 64, 96, 77, 124, 107, 112, 78, 182, 34, 96, 79, 92, 77, 112, 80, 150, 4, 96, 81, 60, 47, 112, 82, 117, 230, 96, 83, 28, 17, 112, 84, 85, 200, 96, 84, 251, 243, 112, 86, 53, 170, 96, 86, 229, 15, 240, 88, 30, 198, 224, 88, 196, 241, 240, 89, 254, 168, 224, 90, 164, 211, 240, 91, 222, 138, 224, 92, 132, 181, 240, 93, 190, 108, 224, 94, 100, 151, 240, 95, 158, 78, 224, 96, 77, 180, 112, 97, 135, 107, 96, 98, 45, 150, 112, 99, 103, 77, 96, 100, 13, 120, 112, 101, 71, 47, 96, 101, 237, 90, 112, 103, 39, 17, 96, 103, 205, 60, 112, 105, 6, 243, 96, 105, 173, 30, 112, 106, 230, 213, 96, 107, 150, 58, 240, 108, 207, 241, 224, 109, 118, 28, 240, 110, 175, 211, 224, 111, 85, 254, 240, 112, 143, 181, 224, 113, 53, 224, 240, 114, 111, 151, 224, 115, 21, 194, 240, 116, 79, 121, 224, 116, 254, 223, 112, 118, 56, 150, 96, 118, 222, 193, 112, 120, 24, 120, 96, 120, 190, 163, 112, 121, 248, 90, 96, 122, 158, 133, 112, 123, 216, 60, 96, 124, 126, 103, 112, 125, 184, 30, 96, 126, 94, 73, 112, 127, 152, 0, 96, 0, 1, 2, 3, 4, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 255, 255, 178, 37, 0, 0, 255, 255, 171, 160, 0, 4, 255, 255, 185, 176, 0, 8, 255, 255, 199, 192, 1, 12, 255, 255, 199, 192, 1, 16, 255, 255, 199, 192, 1, 20, 76, 77, 84, 0, 67, 83, 84, 0, 69, 83, 84, 0, 69, 87, 84, 0, 69, 80, 84, 0, 69, 68, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 69, 83, 84, 53, 69, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Mountain": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 58, 144, 159, 187, 7, 128, 160, 134, 28, 144, 161, 154, 233, 128, 162, 101, 254, 144, 163, 132, 6, 0, 164, 69, 224, 144, 164, 143, 166, 128, 203, 137, 12, 144, 210, 35, 244, 112, 210, 97, 24, 0, 247, 47, 118, 144, 248, 40, 148, 0, 249, 15, 88, 144, 250, 8, 118, 0, 250, 248, 117, 16, 251, 232, 88, 0, 252, 216, 87, 16, 253, 200, 58, 0, 254, 184, 57, 16, 255, 168, 28, 0, 0, 152, 27, 16, 1, 135, 254, 0, 2, 119, 253, 16, 3, 113, 26, 128, 4, 97, 25, 144, 5, 80, 252, 128, 6, 64, 251, 144, 7, 48, 222, 128, 7, 141, 53, 144, 9, 16, 192, 128, 9, 173, 177, 16, 10, 240, 162, 128, 11, 224, 161, 144, 12, 217, 191, 0, 13, 192, 131, 144, 14, 185, 161, 0, 15, 169, 160, 16, 16, 153, 131, 0, 17, 137, 130, 16, 18, 121, 101, 0, 19, 105, 100, 16, 20, 89, 71, 0, 21, 73, 70, 16, 22, 57, 41, 0, 23, 41, 40, 16, 24, 34, 69, 128, 25, 9, 10, 16, 26, 2, 39, 128, 26, 242, 38, 144, 27, 226, 9, 128, 28, 210, 8, 144, 29, 193, 235, 128, 30, 177, 234, 144, 31, 161, 205, 128, 32, 118, 29, 16, 33, 129, 175, 128, 34, 85, 255, 16, 35, 106, 204, 0, 36, 53, 225, 16, 37, 74, 174, 0, 38, 21, 195, 16, 39, 42, 144, 0, 39, 254, 223, 144, 41, 10, 114, 0, 41, 222, 193, 144, 42, 234, 84, 0, 43, 190, 163, 144, 44, 211, 112, 128, 45, 158, 133, 144, 46, 179, 82, 128, 47, 126, 103, 144, 48, 147, 52, 128, 49, 103, 132, 16, 50, 115, 22, 128, 51, 71, 102, 16, 52, 82, 248, 128, 53, 39, 72, 16, 54, 50, 218, 128, 55, 7, 42, 16, 56, 27, 247, 0, 56, 231, 12, 16, 57, 251, 217, 0, 58, 198, 238, 16, 59, 219, 187, 0, 60, 176, 10, 144, 61, 187, 157, 0, 62, 143, 236, 144, 63, 155, 127, 0, 64, 111, 206, 144, 65, 132, 155, 128, 66, 79, 176, 144, 67, 100, 125, 128, 68, 47, 146, 144, 69, 68, 95, 128, 69, 243, 197, 16, 71, 45, 124, 0, 71, 211, 167, 16, 73, 13, 94, 0, 73, 179, 137, 16, 74, 237, 64, 0, 75, 156, 165, 144, 76, 214, 92, 128, 77, 124, 135, 144, 78, 182, 62, 128, 79, 92, 105, 144, 80, 150, 32, 128, 81, 60, 75, 144, 82, 118, 2, 128, 83, 28, 45, 144, 84, 85, 228, 128, 84, 252, 15, 144, 86, 53, 198, 128, 86, 229, 44, 16, 88, 30, 227, 0, 88, 197, 14, 16, 89, 254, 197, 0, 90, 164, 240, 16, 91, 222, 167, 0, 92, 132, 210, 16, 93, 190, 137, 0, 94, 100, 180, 16, 95, 158, 107, 0, 96, 77, 208, 144, 97, 135, 135, 128, 98, 45, 178, 144, 99, 103, 105, 128, 100, 13, 148, 144, 101, 71, 75, 128, 101, 237, 118, 144, 103, 39, 45, 128, 103, 205, 88, 144, 105, 7, 15, 128, 105, 173, 58, 144, 106, 230, 241, 128, 107, 150, 87, 16, 108, 208, 14, 0, 109, 118, 57, 16, 110, 175, 240, 0, 111, 86, 27, 16, 112, 143, 210, 0, 113, 53, 253, 16, 114, 111, 180, 0, 115, 21, 223, 16, 116, 79, 150, 0, 116, 254, 251, 144, 118, 56, 178, 128, 118, 222, 221, 144, 120, 24, 148, 128, 120, 190, 191, 144, 121, 248, 118, 128, 122, 158, 161, 144, 123, 216, 88, 128, 124, 126, 131, 144, 125, 184, 58, 128, 126, 94, 101, 144, 127, 152, 28, 128, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 157, 148, 0, 0, 255, 255, 171, 160, 1, 4, 255, 255, 157, 144, 0, 8, 255, 255, 171, 160, 1, 12, 255, 255, 171, 160, 1, 16, 76, 77, 84, 0, 77, 68, 84, 0, 77, 83, 84, 0, 77, 87, 84, 0, 77, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 77, 83, 84, 55, 77, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Pacific": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 5, 0, 0, 0, 20, 128, 0, 0, 0, 158, 166, 72, 160, 159, 187, 21, 144, 160, 134, 42, 160, 161, 154, 247, 144, 203, 137, 26, 160, 210, 35, 244, 112, 210, 97, 38, 16, 214, 254, 116, 92, 216, 128, 173, 144, 218, 254, 195, 144, 219, 192, 144, 16, 220, 222, 165, 144, 221, 169, 172, 144, 222, 190, 135, 144, 223, 137, 142, 144, 224, 158, 105, 144, 225, 105, 112, 144, 226, 126, 75, 144, 227, 73, 82, 144, 228, 94, 45, 144, 229, 41, 52, 144, 230, 71, 74, 16, 231, 18, 81, 16, 232, 39, 44, 16, 232, 242, 51, 16, 234, 7, 14, 16, 234, 210, 21, 16, 235, 230, 240, 16, 236, 177, 247, 16, 237, 198, 210, 16, 238, 145, 217, 16, 239, 175, 238, 144, 240, 113, 187, 16, 241, 143, 208, 144, 242, 127, 193, 144, 243, 111, 178, 144, 244, 95, 163, 144, 245, 79, 148, 144, 246, 63, 133, 144, 247, 47, 118, 144, 248, 40, 162, 16, 249, 15, 88, 144, 250, 8, 132, 16, 250, 248, 131, 32, 251, 232, 102, 16, 252, 216, 101, 32, 253, 200, 72, 16, 254, 184, 71, 32, 255, 168, 42, 16, 0, 152, 41, 32, 1, 136, 12, 16, 2, 120, 11, 32, 3, 113, 40, 144, 4, 97, 39, 160, 5, 81, 10, 144, 6, 65, 9, 160, 7, 48, 236, 144, 7, 141, 67, 160, 9, 16, 206, 144, 9, 173, 191, 32, 10, 240, 176, 144, 11, 224, 175, 160, 12, 217, 205, 16, 13, 192, 145, 160, 14, 185, 175, 16, 15, 169, 174, 32, 16, 153, 145, 16, 17, 137, 144, 32, 18, 121, 115, 16, 19, 105, 114, 32, 20, 89, 85, 16, 21, 73, 84, 32, 22, 57, 55, 16, 23, 41, 54, 32, 24, 34, 83, 144, 25, 9, 24, 32, 26, 2, 53, 144, 26, 242, 52, 160, 27, 226, 23, 144, 28, 210, 22, 160, 29, 193, 249, 144, 30, 177, 248, 160, 31, 161, 219, 144, 32, 118, 43, 32, 33, 129, 189, 144, 34, 86, 13, 32, 35, 106, 218, 16, 36, 53, 239, 32, 37, 74, 188, 16, 38, 21, 209, 32, 39, 42, 158, 16, 39, 254, 237, 160, 41, 10, 128, 16, 41, 222, 207, 160, 42, 234, 98, 16, 43, 190, 177, 160, 44, 211, 126, 144, 45, 158, 147, 160, 46, 179, 96, 144, 47, 126, 117, 160, 48, 147, 66, 144, 49, 103, 146, 32, 50, 115, 36, 144, 51, 71, 116, 32, 52, 83, 6, 144, 53, 39, 86, 32, 54, 50, 232, 144, 55, 7, 56, 32, 56, 28, 5, 16, 56, 231, 26, 32, 57, 251, 231, 16, 58, 198, 252, 32, 59, 219, 201, 16, 60, 176, 24, 160, 61, 187, 171, 16, 62, 143, 250, 160, 63, 155, 141, 16, 64, 111, 220, 160, 65, 132, 169, 144, 66, 79, 190, 160, 67, 100, 139, 144, 68, 47, 160, 160, 69, 68, 109, 144, 69, 243, 211, 32, 71, 45, 138, 16, 71, 211, 181, 32, 73, 13, 108, 16, 73, 179, 151, 32, 74, 237, 78, 16, 75, 156, 179, 160, 76, 214, 106, 144, 77, 124, 149, 160, 78, 182, 76, 144, 79, 92, 119, 160, 80, 150, 46, 144, 81, 60, 89, 160, 82, 118, 16, 144, 83, 28, 59, 160, 84, 85, 242, 144, 84, 252, 29, 160, 86, 53, 212, 144, 86, 229, 58, 32, 88, 30, 241, 16, 88, 197, 28, 32, 89, 254, 211, 16, 90, 164, 254, 32, 91, 222, 181, 16, 92, 132, 224, 32, 93, 190, 151, 16, 94, 100, 194, 32, 95, 158, 121, 16, 96, 77, 222, 160, 97, 135, 149, 144, 98, 45, 192, 160, 99, 103, 119, 144, 100, 13, 162, 160, 101, 71, 89, 144, 101, 237, 132, 160, 103, 39, 59, 144, 103, 205, 102, 160, 105, 7, 29, 144, 105, 173, 72, 160, 106, 230, 255, 144, 107, 150, 101, 32, 108, 208, 28, 16, 109, 118, 71, 32, 110, 175, 254, 16, 111, 86, 41, 32, 112, 143, 224, 16, 113, 54, 11, 32, 114, 111, 194, 16, 115, 21, 237, 32, 116, 79, 164, 16, 116, 255, 9, 160, 118, 56, 192, 144, 118, 222, 235, 160, 120, 24, 162, 144, 120, 190, 205, 160, 121, 248, 132, 144, 122, 158, 175, 160, 123, 216, 102, 144, 124, 126, 145, 160, 125, 184, 72, 144, 126, 94, 115, 160, 127, 152, 42, 144, 2, 1, 2, 1, 2, 3, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 255, 255, 145, 38, 0, 0, 255, 255, 157, 144, 1, 4, 255, 255, 143, 128, 0, 8, 255, 255, 157, 144, 1, 12, 255, 255, 157, 144, 1, 16, 76, 77, 84, 0, 80, 68, 84, 0, 80, 83, 84, 0, 80, 87, 84, 0, 80, 80, 84, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 80, 83, 84, 56, 80, 68, 84, 44, 77, 51, 46, 50, 46, 48, 44, 77, 49, 49, 46, 49, 46, 48, 10},
+
+ "zoneinfo/US/Samoa": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 8, 128, 0, 0, 0, 145, 5, 251, 8, 1, 2, 0, 0, 177, 120, 0, 0, 255, 255, 95, 248, 0, 0, 255, 255, 101, 80, 0, 4, 76, 77, 84, 0, 83, 83, 84, 0, 0, 0, 0, 0, 0, 0, 10, 83, 83, 84, 49, 49, 10},
+
+ "zoneinfo/UTC": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 84, 67, 0, 0, 0, 10, 85, 84, 67, 48, 10},
+
+ "zoneinfo/Universal": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 84, 67, 0, 0, 0, 10, 85, 84, 67, 48, 10},
+
+ "zoneinfo/W-SU": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 17, 0, 0, 0, 38, 128, 0, 0, 0, 155, 95, 30, 199, 157, 62, 242, 121, 158, 42, 238, 249, 158, 247, 57, 105, 159, 132, 87, 249, 160, 216, 108, 233, 161, 0, 57, 128, 161, 60, 166, 64, 164, 16, 109, 192, 164, 61, 50, 176, 165, 21, 104, 176, 165, 61, 3, 192, 167, 30, 69, 80, 181, 164, 25, 96, 21, 39, 167, 208, 22, 24, 220, 64, 23, 8, 219, 80, 23, 250, 15, 192, 24, 234, 14, 208, 25, 219, 67, 64, 26, 204, 147, 208, 27, 188, 160, 240, 28, 172, 145, 240, 29, 156, 130, 240, 30, 140, 115, 240, 31, 124, 100, 240, 32, 108, 85, 240, 33, 92, 70, 240, 34, 76, 55, 240, 35, 60, 40, 240, 36, 44, 25, 240, 37, 28, 10, 240, 38, 11, 251, 240, 39, 5, 39, 112, 39, 245, 24, 112, 40, 229, 23, 128, 41, 120, 191, 128, 41, 212, 250, 112, 42, 196, 235, 112, 43, 180, 220, 112, 44, 164, 205, 112, 45, 148, 190, 112, 46, 132, 175, 112, 47, 116, 160, 112, 48, 100, 145, 112, 49, 93, 188, 240, 50, 114, 151, 240, 51, 61, 158, 240, 52, 82, 121, 240, 53, 29, 128, 240, 54, 50, 91, 240, 54, 253, 98, 240, 56, 27, 120, 112, 56, 221, 68, 240, 57, 251, 90, 112, 58, 189, 38, 240, 59, 219, 60, 112, 60, 166, 67, 112, 61, 187, 30, 112, 62, 134, 37, 112, 63, 155, 0, 112, 64, 102, 7, 112, 65, 132, 28, 240, 66, 69, 233, 112, 67, 99, 254, 240, 68, 37, 203, 112, 69, 67, 224, 240, 70, 5, 173, 112, 71, 35, 194, 240, 71, 238, 201, 240, 73, 3, 164, 240, 73, 206, 171, 240, 74, 227, 134, 240, 75, 174, 141, 240, 76, 204, 163, 112, 77, 142, 111, 240, 84, 76, 29, 96, 1, 3, 2, 3, 4, 2, 4, 5, 6, 7, 8, 7, 6, 9, 6, 7, 6, 7, 6, 7, 6, 7, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 12, 13, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 14, 10, 0, 0, 35, 57, 0, 0, 0, 0, 35, 57, 0, 4, 0, 0, 49, 135, 1, 8, 0, 0, 35, 119, 0, 4, 0, 0, 63, 151, 1, 12, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 21, 0, 0, 56, 64, 1, 17, 0, 0, 70, 80, 1, 25, 0, 0, 28, 32, 0, 29, 0, 0, 42, 48, 0, 21, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 1, 33, 0, 0, 28, 32, 0, 29, 0, 0, 56, 64, 0, 21, 0, 0, 56, 64, 1, 17, 0, 0, 42, 48, 0, 21, 76, 77, 84, 0, 77, 77, 84, 0, 77, 83, 84, 0, 77, 68, 83, 84, 0, 77, 83, 68, 0, 77, 83, 75, 0, 43, 48, 53, 0, 69, 69, 84, 0, 69, 69, 83, 84, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 77, 83, 75, 45, 51, 10},
+
+ "zoneinfo/WET": []byte{84, 90, 105, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 2, 0, 0, 0, 9, 13, 164, 99, 144, 14, 139, 26, 16, 15, 132, 69, 144, 16, 116, 54, 144, 17, 100, 39, 144, 18, 84, 24, 144, 19, 77, 68, 16, 20, 51, 250, 144, 21, 35, 235, 144, 22, 19, 220, 144, 23, 3, 205, 144, 23, 243, 190, 144, 24, 227, 175, 144, 25, 211, 160, 144, 26, 195, 145, 144, 27, 188, 189, 16, 28, 172, 174, 16, 29, 156, 159, 16, 30, 140, 144, 16, 31, 124, 129, 16, 32, 108, 114, 16, 33, 92, 99, 16, 34, 76, 84, 16, 35, 60, 69, 16, 36, 44, 54, 16, 37, 28, 39, 16, 38, 12, 24, 16, 39, 5, 67, 144, 39, 245, 52, 144, 40, 229, 37, 144, 41, 213, 22, 144, 42, 197, 7, 144, 43, 180, 248, 144, 44, 164, 233, 144, 45, 148, 218, 144, 46, 132, 203, 144, 47, 116, 188, 144, 48, 100, 173, 144, 49, 93, 217, 16, 50, 114, 180, 16, 51, 61, 187, 16, 52, 82, 150, 16, 53, 29, 157, 16, 54, 50, 120, 16, 54, 253, 127, 16, 56, 27, 148, 144, 56, 221, 97, 16, 57, 251, 118, 144, 58, 189, 67, 16, 59, 219, 88, 144, 60, 166, 95, 144, 61, 187, 58, 144, 62, 134, 65, 144, 63, 155, 28, 144, 64, 102, 35, 144, 65, 132, 57, 16, 66, 70, 5, 144, 67, 100, 27, 16, 68, 37, 231, 144, 69, 67, 253, 16, 70, 5, 201, 144, 71, 35, 223, 16, 71, 238, 230, 16, 73, 3, 193, 16, 73, 206, 200, 16, 74, 227, 163, 16, 75, 174, 170, 16, 76, 204, 191, 144, 77, 142, 140, 16, 78, 172, 161, 144, 79, 110, 110, 16, 80, 140, 131, 144, 81, 87, 138, 144, 82, 108, 101, 144, 83, 55, 108, 144, 84, 76, 71, 144, 85, 23, 78, 144, 86, 44, 41, 144, 86, 247, 48, 144, 88, 21, 70, 16, 88, 215, 18, 144, 89, 245, 40, 16, 90, 182, 244, 144, 91, 213, 10, 16, 92, 160, 17, 16, 93, 180, 236, 16, 94, 127, 243, 16, 95, 148, 206, 16, 96, 95, 213, 16, 97, 125, 234, 144, 98, 63, 183, 16, 99, 93, 204, 144, 100, 31, 153, 16, 101, 61, 174, 144, 102, 8, 181, 144, 103, 29, 144, 144, 103, 232, 151, 144, 104, 253, 114, 144, 105, 200, 121, 144, 106, 221, 84, 144, 107, 168, 91, 144, 108, 198, 113, 16, 109, 136, 61, 144, 110, 166, 83, 16, 111, 104, 31, 144, 112, 134, 53, 16, 113, 81, 60, 16, 114, 102, 23, 16, 115, 49, 30, 16, 116, 69, 249, 16, 117, 17, 0, 16, 118, 47, 21, 144, 118, 240, 226, 16, 120, 14, 247, 144, 120, 208, 196, 16, 121, 238, 217, 144, 122, 176, 166, 16, 123, 206, 187, 144, 124, 153, 194, 144, 125, 174, 157, 144, 126, 121, 164, 144, 127, 142, 127, 144, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 14, 16, 1, 0, 0, 0, 0, 0, 0, 5, 87, 69, 83, 84, 0, 87, 69, 84, 0, 1, 1, 1, 1, 10, 87, 69, 84, 48, 87, 69, 83, 84, 44, 77, 51, 46, 53, 46, 48, 47, 49, 44, 77, 49, 48, 46, 53, 46, 48, 10},
+
+ "zoneinfo/Zulu": []byte{84, 90, 105, 102, 50, 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, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 85, 84, 67, 0, 0, 0, 10, 85, 84, 67, 48, 10},
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses/json_parser.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses/json_parser.go
new file mode 100644
index 000000000..8ed3e9fa5
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses/json_parser.go
@@ -0,0 +1,327 @@
+package responses
+
+import (
+ "encoding/json"
+ "io"
+ "math"
+ "strconv"
+ "strings"
+ "sync"
+ "unsafe"
+
+ "github.com/json-iterator/go"
+)
+
+const maxUint = ^uint(0)
+const maxInt = int(maxUint >> 1)
+const minInt = -maxInt - 1
+
+var jsonParser jsoniter.API
+var initJson = &sync.Once{}
+
+func initJsonParserOnce() {
+ initJson.Do(func() {
+ registerBetterFuzzyDecoder()
+ jsonParser = jsoniter.ConfigCompatibleWithStandardLibrary
+ })
+}
+
+func registerBetterFuzzyDecoder() {
+ jsoniter.RegisterTypeDecoder("string", &nullableFuzzyStringDecoder{})
+ jsoniter.RegisterTypeDecoder("bool", &fuzzyBoolDecoder{})
+ jsoniter.RegisterTypeDecoder("float32", &nullableFuzzyFloat32Decoder{})
+ jsoniter.RegisterTypeDecoder("float64", &nullableFuzzyFloat64Decoder{})
+ jsoniter.RegisterTypeDecoder("int", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(maxInt) || val < float64(minInt) {
+ iter.ReportError("fuzzy decode int", "exceed range")
+ return
+ }
+ *((*int)(ptr)) = int(val)
+ } else {
+ *((*int)(ptr)) = iter.ReadInt()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("uint", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(maxUint) || val < 0 {
+ iter.ReportError("fuzzy decode uint", "exceed range")
+ return
+ }
+ *((*uint)(ptr)) = uint(val)
+ } else {
+ *((*uint)(ptr)) = iter.ReadUint()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("int8", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxInt8) || val < float64(math.MinInt8) {
+ iter.ReportError("fuzzy decode int8", "exceed range")
+ return
+ }
+ *((*int8)(ptr)) = int8(val)
+ } else {
+ *((*int8)(ptr)) = iter.ReadInt8()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("uint8", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxUint8) || val < 0 {
+ iter.ReportError("fuzzy decode uint8", "exceed range")
+ return
+ }
+ *((*uint8)(ptr)) = uint8(val)
+ } else {
+ *((*uint8)(ptr)) = iter.ReadUint8()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("int16", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxInt16) || val < float64(math.MinInt16) {
+ iter.ReportError("fuzzy decode int16", "exceed range")
+ return
+ }
+ *((*int16)(ptr)) = int16(val)
+ } else {
+ *((*int16)(ptr)) = iter.ReadInt16()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("uint16", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxUint16) || val < 0 {
+ iter.ReportError("fuzzy decode uint16", "exceed range")
+ return
+ }
+ *((*uint16)(ptr)) = uint16(val)
+ } else {
+ *((*uint16)(ptr)) = iter.ReadUint16()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("int32", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxInt32) || val < float64(math.MinInt32) {
+ iter.ReportError("fuzzy decode int32", "exceed range")
+ return
+ }
+ *((*int32)(ptr)) = int32(val)
+ } else {
+ *((*int32)(ptr)) = iter.ReadInt32()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("uint32", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxUint32) || val < 0 {
+ iter.ReportError("fuzzy decode uint32", "exceed range")
+ return
+ }
+ *((*uint32)(ptr)) = uint32(val)
+ } else {
+ *((*uint32)(ptr)) = iter.ReadUint32()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("int64", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxInt64) || val < float64(math.MinInt64) {
+ iter.ReportError("fuzzy decode int64", "exceed range")
+ return
+ }
+ *((*int64)(ptr)) = int64(val)
+ } else {
+ *((*int64)(ptr)) = iter.ReadInt64()
+ }
+ }})
+ jsoniter.RegisterTypeDecoder("uint64", &nullableFuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ if isFloat {
+ val := iter.ReadFloat64()
+ if val > float64(math.MaxUint64) || val < 0 {
+ iter.ReportError("fuzzy decode uint64", "exceed range")
+ return
+ }
+ *((*uint64)(ptr)) = uint64(val)
+ } else {
+ *((*uint64)(ptr)) = iter.ReadUint64()
+ }
+ }})
+}
+
+type nullableFuzzyStringDecoder struct {
+}
+
+func (decoder *nullableFuzzyStringDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ valueType := iter.WhatIsNext()
+ switch valueType {
+ case jsoniter.NumberValue:
+ var number json.Number
+ iter.ReadVal(&number)
+ *((*string)(ptr)) = string(number)
+ case jsoniter.StringValue:
+ *((*string)(ptr)) = iter.ReadString()
+ case jsoniter.BoolValue:
+ *((*string)(ptr)) = strconv.FormatBool(iter.ReadBool())
+ case jsoniter.NilValue:
+ iter.ReadNil()
+ *((*string)(ptr)) = ""
+ default:
+ iter.ReportError("fuzzyStringDecoder", "not number or string or bool")
+ }
+}
+
+type fuzzyBoolDecoder struct {
+}
+
+func (decoder *fuzzyBoolDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ valueType := iter.WhatIsNext()
+ switch valueType {
+ case jsoniter.BoolValue:
+ *((*bool)(ptr)) = iter.ReadBool()
+ case jsoniter.NumberValue:
+ var number json.Number
+ iter.ReadVal(&number)
+ num, err := number.Int64()
+ if err != nil {
+ iter.ReportError("fuzzyBoolDecoder", "get value from json.number failed")
+ }
+ if num == 0 {
+ *((*bool)(ptr)) = false
+ } else {
+ *((*bool)(ptr)) = true
+ }
+ case jsoniter.StringValue:
+ strValue := strings.ToLower(iter.ReadString())
+ if strValue == "true" {
+ *((*bool)(ptr)) = true
+ } else if strValue == "false" || strValue == "" {
+ *((*bool)(ptr)) = false
+ } else {
+ iter.ReportError("fuzzyBoolDecoder", "unsupported bool value: "+strValue)
+ }
+ case jsoniter.NilValue:
+ iter.ReadNil()
+ *((*bool)(ptr)) = false
+ default:
+ iter.ReportError("fuzzyBoolDecoder", "not number or string or nil")
+ }
+}
+
+type nullableFuzzyIntegerDecoder struct {
+ fun func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator)
+}
+
+func (decoder *nullableFuzzyIntegerDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ valueType := iter.WhatIsNext()
+ var str string
+ switch valueType {
+ case jsoniter.NumberValue:
+ var number json.Number
+ iter.ReadVal(&number)
+ str = string(number)
+ case jsoniter.StringValue:
+ str = iter.ReadString()
+ // support empty string
+ if str == "" {
+ str = "0"
+ }
+ case jsoniter.BoolValue:
+ if iter.ReadBool() {
+ str = "1"
+ } else {
+ str = "0"
+ }
+ case jsoniter.NilValue:
+ iter.ReadNil()
+ str = "0"
+ default:
+ iter.ReportError("fuzzyIntegerDecoder", "not number or string")
+ }
+ newIter := iter.Pool().BorrowIterator([]byte(str))
+ defer iter.Pool().ReturnIterator(newIter)
+ isFloat := strings.IndexByte(str, '.') != -1
+ decoder.fun(isFloat, ptr, newIter)
+ if newIter.Error != nil && newIter.Error != io.EOF {
+ iter.Error = newIter.Error
+ }
+}
+
+type nullableFuzzyFloat32Decoder struct {
+}
+
+func (decoder *nullableFuzzyFloat32Decoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ valueType := iter.WhatIsNext()
+ var str string
+ switch valueType {
+ case jsoniter.NumberValue:
+ *((*float32)(ptr)) = iter.ReadFloat32()
+ case jsoniter.StringValue:
+ str = iter.ReadString()
+ // support empty string
+ if str == "" {
+ *((*float32)(ptr)) = 0
+ return
+ }
+ newIter := iter.Pool().BorrowIterator([]byte(str))
+ defer iter.Pool().ReturnIterator(newIter)
+ *((*float32)(ptr)) = newIter.ReadFloat32()
+ if newIter.Error != nil && newIter.Error != io.EOF {
+ iter.Error = newIter.Error
+ }
+ case jsoniter.BoolValue:
+ // support bool to float32
+ if iter.ReadBool() {
+ *((*float32)(ptr)) = 1
+ } else {
+ *((*float32)(ptr)) = 0
+ }
+ case jsoniter.NilValue:
+ iter.ReadNil()
+ *((*float32)(ptr)) = 0
+ default:
+ iter.ReportError("nullableFuzzyFloat32Decoder", "not number or string")
+ }
+}
+
+type nullableFuzzyFloat64Decoder struct {
+}
+
+func (decoder *nullableFuzzyFloat64Decoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
+ valueType := iter.WhatIsNext()
+ var str string
+ switch valueType {
+ case jsoniter.NumberValue:
+ *((*float64)(ptr)) = iter.ReadFloat64()
+ case jsoniter.StringValue:
+ str = iter.ReadString()
+ // support empty string
+ if str == "" {
+ *((*float64)(ptr)) = 0
+ return
+ }
+ newIter := iter.Pool().BorrowIterator([]byte(str))
+ defer iter.Pool().ReturnIterator(newIter)
+ *((*float64)(ptr)) = newIter.ReadFloat64()
+ if newIter.Error != nil && newIter.Error != io.EOF {
+ iter.Error = newIter.Error
+ }
+ case jsoniter.BoolValue:
+ // support bool to float64
+ if iter.ReadBool() {
+ *((*float64)(ptr)) = 1
+ } else {
+ *((*float64)(ptr)) = 0
+ }
+ case jsoniter.NilValue:
+ // support empty string
+ iter.ReadNil()
+ *((*float64)(ptr)) = 0
+ default:
+ iter.ReportError("nullableFuzzyFloat64Decoder", "not number or string")
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses/response.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses/response.go
new file mode 100644
index 000000000..72514d56a
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses/response.go
@@ -0,0 +1,145 @@
+/*
+ * 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.
+ */
+
+package responses
+
+import (
+ "bytes"
+ "encoding/xml"
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "strings"
+
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+)
+
+type AcsResponse interface {
+ IsSuccess() bool
+ GetHttpStatus() int
+ GetHttpHeaders() map[string][]string
+ GetHttpContentString() string
+ GetHttpContentBytes() []byte
+ GetOriginHttpResponse() *http.Response
+ parseFromHttpResponse(httpResponse *http.Response) error
+}
+
+// Unmarshal object from http response body to target Response
+func Unmarshal(response AcsResponse, httpResponse *http.Response, format string) (err error) {
+ err = response.parseFromHttpResponse(httpResponse)
+ if err != nil {
+ return
+ }
+ if !response.IsSuccess() {
+ err = errors.NewServerError(response.GetHttpStatus(), response.GetHttpContentString(), "")
+ return
+ }
+
+ if _, isCommonResponse := response.(*CommonResponse); isCommonResponse {
+ // common response need not unmarshal
+ return
+ }
+
+ if len(response.GetHttpContentBytes()) == 0 {
+ return
+ }
+
+ if strings.ToUpper(format) == "JSON" {
+ initJsonParserOnce()
+ err = jsonParser.Unmarshal(response.GetHttpContentBytes(), response)
+ if err != nil {
+ err = errors.NewClientError(errors.JsonUnmarshalErrorCode, errors.JsonUnmarshalErrorMessage, err)
+ }
+ } else if strings.ToUpper(format) == "XML" {
+ err = xml.Unmarshal(response.GetHttpContentBytes(), response)
+ }
+ return
+}
+
+type BaseResponse struct {
+ httpStatus int
+ httpHeaders map[string][]string
+ httpContentString string
+ httpContentBytes []byte
+ originHttpResponse *http.Response
+}
+
+func (baseResponse *BaseResponse) GetHttpStatus() int {
+ return baseResponse.httpStatus
+}
+
+func (baseResponse *BaseResponse) GetHttpHeaders() map[string][]string {
+ return baseResponse.httpHeaders
+}
+
+func (baseResponse *BaseResponse) GetHttpContentString() string {
+ return baseResponse.httpContentString
+}
+
+func (baseResponse *BaseResponse) GetHttpContentBytes() []byte {
+ return baseResponse.httpContentBytes
+}
+
+func (baseResponse *BaseResponse) GetOriginHttpResponse() *http.Response {
+ return baseResponse.originHttpResponse
+}
+
+func (baseResponse *BaseResponse) IsSuccess() bool {
+ if baseResponse.GetHttpStatus() >= 200 && baseResponse.GetHttpStatus() < 300 {
+ return true
+ }
+
+ return false
+}
+
+func (baseResponse *BaseResponse) parseFromHttpResponse(httpResponse *http.Response) (err error) {
+ defer httpResponse.Body.Close()
+ body, err := ioutil.ReadAll(httpResponse.Body)
+ if err != nil {
+ return
+ }
+ baseResponse.httpStatus = httpResponse.StatusCode
+ baseResponse.httpHeaders = httpResponse.Header
+ baseResponse.httpContentBytes = body
+ baseResponse.httpContentString = string(body)
+ baseResponse.originHttpResponse = httpResponse
+ return
+}
+
+func (baseResponse *BaseResponse) String() string {
+ resultBuilder := bytes.Buffer{}
+ // statusCode
+ // resultBuilder.WriteString("\n")
+ resultBuilder.WriteString(fmt.Sprintf("%s %s\n", baseResponse.originHttpResponse.Proto, baseResponse.originHttpResponse.Status))
+ // httpHeaders
+ //resultBuilder.WriteString("Headers:\n")
+ for key, value := range baseResponse.httpHeaders {
+ resultBuilder.WriteString(key + ": " + strings.Join(value, ";") + "\n")
+ }
+ resultBuilder.WriteString("\n")
+ // content
+ //resultBuilder.WriteString("Content:\n")
+ resultBuilder.WriteString(baseResponse.httpContentString + "\n")
+ return resultBuilder.String()
+}
+
+type CommonResponse struct {
+ *BaseResponse
+}
+
+func NewCommonResponse() (response *CommonResponse) {
+ return &CommonResponse{
+ BaseResponse: &BaseResponse{},
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils/debug.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils/debug.go
new file mode 100644
index 000000000..09440d27b
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils/debug.go
@@ -0,0 +1,36 @@
+package utils
+
+import (
+ "fmt"
+ "os"
+ "strings"
+)
+
+type Debug func(format string, v ...interface{})
+
+var hookGetEnv = func() string {
+ return os.Getenv("DEBUG")
+}
+
+var hookPrint = func(input string) {
+ fmt.Println(input)
+}
+
+func Init(flag string) Debug {
+ enable := false
+
+ env := hookGetEnv()
+ parts := strings.Split(env, ",")
+ for _, part := range parts {
+ if part == flag {
+ enable = true
+ break
+ }
+ }
+
+ return func(format string, v ...interface{}) {
+ if enable {
+ hookPrint(fmt.Sprintf(format, v...))
+ }
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils/utils.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils/utils.go
new file mode 100644
index 000000000..068757d17
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils/utils.go
@@ -0,0 +1,105 @@
+/*
+ * 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.
+ */
+
+package utils
+
+import (
+ "crypto/md5"
+ "encoding/base64"
+ "encoding/hex"
+ "net/url"
+ "reflect"
+ "strconv"
+ "time"
+
+ "github.com/satori/go.uuid"
+)
+
+// if you use go 1.10 or higher, you can hack this util by these to avoid "TimeZone.zip not found" on Windows
+var LoadLocationFromTZData func(name string, data []byte) (*time.Location, error) = nil
+var TZData []byte = nil
+
+func GetUUIDV4() (uuidHex string) {
+ uuidV4 := uuid.NewV4()
+ uuidHex = hex.EncodeToString(uuidV4.Bytes())
+ return
+}
+
+func GetMD5Base64(bytes []byte) (base64Value string) {
+ md5Ctx := md5.New()
+ md5Ctx.Write(bytes)
+ md5Value := md5Ctx.Sum(nil)
+ base64Value = base64.StdEncoding.EncodeToString(md5Value)
+ return
+}
+
+func GetGMTLocation() (*time.Location, error) {
+ if LoadLocationFromTZData != nil && TZData != nil {
+ return LoadLocationFromTZData("GMT", TZData)
+ } else {
+ return time.LoadLocation("GMT")
+ }
+}
+
+func GetTimeInFormatISO8601() (timeStr string) {
+ gmt, err := GetGMTLocation()
+
+ if err != nil {
+ panic(err)
+ }
+ return time.Now().In(gmt).Format("2006-01-02T15:04:05Z")
+}
+
+func GetTimeInFormatRFC2616() (timeStr string) {
+ gmt, err := GetGMTLocation()
+
+ if err != nil {
+ panic(err)
+ }
+ return time.Now().In(gmt).Format("Mon, 02 Jan 2006 15:04:05 GMT")
+}
+
+func GetUrlFormedMap(source map[string]string) (urlEncoded string) {
+ urlEncoder := url.Values{}
+ for key, value := range source {
+ urlEncoder.Add(key, value)
+ }
+ urlEncoded = urlEncoder.Encode()
+ return
+}
+
+func InitStructWithDefaultTag(bean interface{}) {
+ configType := reflect.TypeOf(bean)
+ for i := 0; i < configType.Elem().NumField(); i++ {
+ field := configType.Elem().Field(i)
+ defaultValue := field.Tag.Get("default")
+ if defaultValue == "" {
+ continue
+ }
+ setter := reflect.ValueOf(bean).Elem().Field(i)
+ switch field.Type.String() {
+ case "int":
+ intValue, _ := strconv.ParseInt(defaultValue, 10, 64)
+ setter.SetInt(intValue)
+ case "time.Duration":
+ intValue, _ := strconv.ParseInt(defaultValue, 10, 64)
+ setter.SetInt(intValue)
+ case "string":
+ setter.SetString(defaultValue)
+ case "bool":
+ boolValue, _ := strconv.ParseBool(defaultValue)
+ setter.SetBool(boolValue)
+ }
+ }
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/client.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/client.go
new file mode 100644
index 000000000..64ae84c93
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/client.go
@@ -0,0 +1,81 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+ sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+ client = &Client{}
+ err = client.Init()
+ return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithOptions(regionId, config, credential)
+ return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://help.aliyun.com/document_detail/66217.html
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+ return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+ return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+ return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithEcsRamRole(regionId, roleName)
+ return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+ client = &Client{}
+ err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_endpoint.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_endpoint.go
new file mode 100644
index 000000000..06b3d6ed2
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_endpoint.go
@@ -0,0 +1,111 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeEndpoint invokes the location.DescribeEndpoint API synchronously
+// api document: https://help.aliyun.com/api/location/describeendpoint.html
+func (client *Client) DescribeEndpoint(request *DescribeEndpointRequest) (response *DescribeEndpointResponse, err error) {
+ response = CreateDescribeEndpointResponse()
+ err = client.DoAction(request, response)
+ return
+}
+
+// DescribeEndpointWithChan invokes the location.DescribeEndpoint API asynchronously
+// api document: https://help.aliyun.com/api/location/describeendpoint.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEndpointWithChan(request *DescribeEndpointRequest) (<-chan *DescribeEndpointResponse, <-chan error) {
+ responseChan := make(chan *DescribeEndpointResponse, 1)
+ errChan := make(chan error, 1)
+ err := client.AddAsyncTask(func() {
+ defer close(responseChan)
+ defer close(errChan)
+ response, err := client.DescribeEndpoint(request)
+ if err != nil {
+ errChan <- err
+ } else {
+ responseChan <- response
+ }
+ })
+ if err != nil {
+ errChan <- err
+ close(responseChan)
+ close(errChan)
+ }
+ return responseChan, errChan
+}
+
+// DescribeEndpointWithCallback invokes the location.DescribeEndpoint API asynchronously
+// api document: https://help.aliyun.com/api/location/describeendpoint.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEndpointWithCallback(request *DescribeEndpointRequest, callback func(response *DescribeEndpointResponse, err error)) <-chan int {
+ result := make(chan int, 1)
+ err := client.AddAsyncTask(func() {
+ var response *DescribeEndpointResponse
+ var err error
+ defer close(result)
+ response, err = client.DescribeEndpoint(request)
+ callback(response, err)
+ result <- 1
+ })
+ if err != nil {
+ defer close(result)
+ callback(nil, err)
+ result <- 0
+ }
+ return result
+}
+
+// DescribeEndpointRequest is the request struct for api DescribeEndpoint
+type DescribeEndpointRequest struct {
+ *requests.RpcRequest
+ Password string `position:"Query" name:"Password"`
+ ServiceCode string `position:"Query" name:"ServiceCode"`
+ Id string `position:"Query" name:"Id"`
+}
+
+// DescribeEndpointResponse is the response struct for api DescribeEndpoint
+type DescribeEndpointResponse struct {
+ *responses.BaseResponse
+ RequestId string `json:"RequestId" xml:"RequestId"`
+ Endpoint string `json:"Endpoint" xml:"Endpoint"`
+ Id string `json:"Id" xml:"Id"`
+ Namespace string `json:"Namespace" xml:"Namespace"`
+ SerivceCode string `json:"SerivceCode" xml:"SerivceCode"`
+ Type string `json:"Type" xml:"Type"`
+ Protocols ProtocolsInDescribeEndpoint `json:"Protocols" xml:"Protocols"`
+}
+
+// CreateDescribeEndpointRequest creates a request to invoke DescribeEndpoint API
+func CreateDescribeEndpointRequest() (request *DescribeEndpointRequest) {
+ request = &DescribeEndpointRequest{
+ RpcRequest: &requests.RpcRequest{},
+ }
+ request.InitWithApiInfo("Location", "2015-06-12", "DescribeEndpoint", "location", "openAPI")
+ return
+}
+
+// CreateDescribeEndpointResponse creates a response to parse from DescribeEndpoint response
+func CreateDescribeEndpointResponse() (response *DescribeEndpointResponse) {
+ response = &DescribeEndpointResponse{
+ BaseResponse: &responses.BaseResponse{},
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_endpoints.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_endpoints.go
new file mode 100644
index 000000000..95c6e7873
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_endpoints.go
@@ -0,0 +1,107 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeEndpoints invokes the location.DescribeEndpoints API synchronously
+// api document: https://help.aliyun.com/api/location/describeendpoints.html
+func (client *Client) DescribeEndpoints(request *DescribeEndpointsRequest) (response *DescribeEndpointsResponse, err error) {
+ response = CreateDescribeEndpointsResponse()
+ err = client.DoAction(request, response)
+ return
+}
+
+// DescribeEndpointsWithChan invokes the location.DescribeEndpoints API asynchronously
+// api document: https://help.aliyun.com/api/location/describeendpoints.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEndpointsWithChan(request *DescribeEndpointsRequest) (<-chan *DescribeEndpointsResponse, <-chan error) {
+ responseChan := make(chan *DescribeEndpointsResponse, 1)
+ errChan := make(chan error, 1)
+ err := client.AddAsyncTask(func() {
+ defer close(responseChan)
+ defer close(errChan)
+ response, err := client.DescribeEndpoints(request)
+ if err != nil {
+ errChan <- err
+ } else {
+ responseChan <- response
+ }
+ })
+ if err != nil {
+ errChan <- err
+ close(responseChan)
+ close(errChan)
+ }
+ return responseChan, errChan
+}
+
+// DescribeEndpointsWithCallback invokes the location.DescribeEndpoints API asynchronously
+// api document: https://help.aliyun.com/api/location/describeendpoints.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEndpointsWithCallback(request *DescribeEndpointsRequest, callback func(response *DescribeEndpointsResponse, err error)) <-chan int {
+ result := make(chan int, 1)
+ err := client.AddAsyncTask(func() {
+ var response *DescribeEndpointsResponse
+ var err error
+ defer close(result)
+ response, err = client.DescribeEndpoints(request)
+ callback(response, err)
+ result <- 1
+ })
+ if err != nil {
+ defer close(result)
+ callback(nil, err)
+ result <- 0
+ }
+ return result
+}
+
+// DescribeEndpointsRequest is the request struct for api DescribeEndpoints
+type DescribeEndpointsRequest struct {
+ *requests.RpcRequest
+ ServiceCode string `position:"Query" name:"ServiceCode"`
+ Id string `position:"Query" name:"Id"`
+ Type string `position:"Query" name:"Type"`
+}
+
+// DescribeEndpointsResponse is the response struct for api DescribeEndpoints
+type DescribeEndpointsResponse struct {
+ *responses.BaseResponse
+ RequestId string `json:"RequestId" xml:"RequestId"`
+ Success bool `json:"Success" xml:"Success"`
+ Endpoints Endpoints `json:"Endpoints" xml:"Endpoints"`
+}
+
+// CreateDescribeEndpointsRequest creates a request to invoke DescribeEndpoints API
+func CreateDescribeEndpointsRequest() (request *DescribeEndpointsRequest) {
+ request = &DescribeEndpointsRequest{
+ RpcRequest: &requests.RpcRequest{},
+ }
+ request.InitWithApiInfo("Location", "2015-06-12", "DescribeEndpoints", "location", "openAPI")
+ return
+}
+
+// CreateDescribeEndpointsResponse creates a response to parse from DescribeEndpoints response
+func CreateDescribeEndpointsResponse() (response *DescribeEndpointsResponse) {
+ response = &DescribeEndpointsResponse{
+ BaseResponse: &responses.BaseResponse{},
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_regions.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_regions.go
new file mode 100644
index 000000000..824829dc7
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_regions.go
@@ -0,0 +1,105 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRegions invokes the location.DescribeRegions API synchronously
+// api document: https://help.aliyun.com/api/location/describeregions.html
+func (client *Client) DescribeRegions(request *DescribeRegionsRequest) (response *DescribeRegionsResponse, err error) {
+ response = CreateDescribeRegionsResponse()
+ err = client.DoAction(request, response)
+ return
+}
+
+// DescribeRegionsWithChan invokes the location.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/location/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithChan(request *DescribeRegionsRequest) (<-chan *DescribeRegionsResponse, <-chan error) {
+ responseChan := make(chan *DescribeRegionsResponse, 1)
+ errChan := make(chan error, 1)
+ err := client.AddAsyncTask(func() {
+ defer close(responseChan)
+ defer close(errChan)
+ response, err := client.DescribeRegions(request)
+ if err != nil {
+ errChan <- err
+ } else {
+ responseChan <- response
+ }
+ })
+ if err != nil {
+ errChan <- err
+ close(responseChan)
+ close(errChan)
+ }
+ return responseChan, errChan
+}
+
+// DescribeRegionsWithCallback invokes the location.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/location/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithCallback(request *DescribeRegionsRequest, callback func(response *DescribeRegionsResponse, err error)) <-chan int {
+ result := make(chan int, 1)
+ err := client.AddAsyncTask(func() {
+ var response *DescribeRegionsResponse
+ var err error
+ defer close(result)
+ response, err = client.DescribeRegions(request)
+ callback(response, err)
+ result <- 1
+ })
+ if err != nil {
+ defer close(result)
+ callback(nil, err)
+ result <- 0
+ }
+ return result
+}
+
+// DescribeRegionsRequest is the request struct for api DescribeRegions
+type DescribeRegionsRequest struct {
+ *requests.RpcRequest
+ Password string `position:"Query" name:"Password"`
+}
+
+// DescribeRegionsResponse is the response struct for api DescribeRegions
+type DescribeRegionsResponse struct {
+ *responses.BaseResponse
+ RequestId string `json:"RequestId" xml:"RequestId"`
+ TotalCount int `json:"TotalCount" xml:"TotalCount"`
+ RegionIds RegionIds `json:"RegionIds" xml:"RegionIds"`
+}
+
+// CreateDescribeRegionsRequest creates a request to invoke DescribeRegions API
+func CreateDescribeRegionsRequest() (request *DescribeRegionsRequest) {
+ request = &DescribeRegionsRequest{
+ RpcRequest: &requests.RpcRequest{},
+ }
+ request.InitWithApiInfo("Location", "2015-06-12", "DescribeRegions", "location", "openAPI")
+ return
+}
+
+// CreateDescribeRegionsResponse creates a response to parse from DescribeRegions response
+func CreateDescribeRegionsResponse() (response *DescribeRegionsResponse) {
+ response = &DescribeRegionsResponse{
+ BaseResponse: &responses.BaseResponse{},
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_services.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_services.go
new file mode 100644
index 000000000..af185ecfe
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/describe_services.go
@@ -0,0 +1,105 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeServices invokes the location.DescribeServices API synchronously
+// api document: https://help.aliyun.com/api/location/describeservices.html
+func (client *Client) DescribeServices(request *DescribeServicesRequest) (response *DescribeServicesResponse, err error) {
+ response = CreateDescribeServicesResponse()
+ err = client.DoAction(request, response)
+ return
+}
+
+// DescribeServicesWithChan invokes the location.DescribeServices API asynchronously
+// api document: https://help.aliyun.com/api/location/describeservices.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeServicesWithChan(request *DescribeServicesRequest) (<-chan *DescribeServicesResponse, <-chan error) {
+ responseChan := make(chan *DescribeServicesResponse, 1)
+ errChan := make(chan error, 1)
+ err := client.AddAsyncTask(func() {
+ defer close(responseChan)
+ defer close(errChan)
+ response, err := client.DescribeServices(request)
+ if err != nil {
+ errChan <- err
+ } else {
+ responseChan <- response
+ }
+ })
+ if err != nil {
+ errChan <- err
+ close(responseChan)
+ close(errChan)
+ }
+ return responseChan, errChan
+}
+
+// DescribeServicesWithCallback invokes the location.DescribeServices API asynchronously
+// api document: https://help.aliyun.com/api/location/describeservices.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeServicesWithCallback(request *DescribeServicesRequest, callback func(response *DescribeServicesResponse, err error)) <-chan int {
+ result := make(chan int, 1)
+ err := client.AddAsyncTask(func() {
+ var response *DescribeServicesResponse
+ var err error
+ defer close(result)
+ response, err = client.DescribeServices(request)
+ callback(response, err)
+ result <- 1
+ })
+ if err != nil {
+ defer close(result)
+ callback(nil, err)
+ result <- 0
+ }
+ return result
+}
+
+// DescribeServicesRequest is the request struct for api DescribeServices
+type DescribeServicesRequest struct {
+ *requests.RpcRequest
+ Password string `position:"Query" name:"Password"`
+}
+
+// DescribeServicesResponse is the response struct for api DescribeServices
+type DescribeServicesResponse struct {
+ *responses.BaseResponse
+ RequestId string `json:"RequestId" xml:"RequestId"`
+ TotalCount int `json:"TotalCount" xml:"TotalCount"`
+ Services Services `json:"Services" xml:"Services"`
+}
+
+// CreateDescribeServicesRequest creates a request to invoke DescribeServices API
+func CreateDescribeServicesRequest() (request *DescribeServicesRequest) {
+ request = &DescribeServicesRequest{
+ RpcRequest: &requests.RpcRequest{},
+ }
+ request.InitWithApiInfo("Location", "2015-06-12", "DescribeServices", "location", "openAPI")
+ return
+}
+
+// CreateDescribeServicesResponse creates a response to parse from DescribeServices response
+func CreateDescribeServicesResponse() (response *DescribeServicesResponse) {
+ response = &DescribeServicesResponse{
+ BaseResponse: &responses.BaseResponse{},
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/list_endpoints.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/list_endpoints.go
new file mode 100644
index 000000000..6b11d0303
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/list_endpoints.go
@@ -0,0 +1,107 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ListEndpoints invokes the location.ListEndpoints API synchronously
+// api document: https://help.aliyun.com/api/location/listendpoints.html
+func (client *Client) ListEndpoints(request *ListEndpointsRequest) (response *ListEndpointsResponse, err error) {
+ response = CreateListEndpointsResponse()
+ err = client.DoAction(request, response)
+ return
+}
+
+// ListEndpointsWithChan invokes the location.ListEndpoints API asynchronously
+// api document: https://help.aliyun.com/api/location/listendpoints.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListEndpointsWithChan(request *ListEndpointsRequest) (<-chan *ListEndpointsResponse, <-chan error) {
+ responseChan := make(chan *ListEndpointsResponse, 1)
+ errChan := make(chan error, 1)
+ err := client.AddAsyncTask(func() {
+ defer close(responseChan)
+ defer close(errChan)
+ response, err := client.ListEndpoints(request)
+ if err != nil {
+ errChan <- err
+ } else {
+ responseChan <- response
+ }
+ })
+ if err != nil {
+ errChan <- err
+ close(responseChan)
+ close(errChan)
+ }
+ return responseChan, errChan
+}
+
+// ListEndpointsWithCallback invokes the location.ListEndpoints API asynchronously
+// api document: https://help.aliyun.com/api/location/listendpoints.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListEndpointsWithCallback(request *ListEndpointsRequest, callback func(response *ListEndpointsResponse, err error)) <-chan int {
+ result := make(chan int, 1)
+ err := client.AddAsyncTask(func() {
+ var response *ListEndpointsResponse
+ var err error
+ defer close(result)
+ response, err = client.ListEndpoints(request)
+ callback(response, err)
+ result <- 1
+ })
+ if err != nil {
+ defer close(result)
+ callback(nil, err)
+ result <- 0
+ }
+ return result
+}
+
+// ListEndpointsRequest is the request struct for api ListEndpoints
+type ListEndpointsRequest struct {
+ *requests.RpcRequest
+ Namespace string `position:"Query" name:"Namespace"`
+ Id string `position:"Query" name:"Id"`
+ SerivceCode string `position:"Query" name:"SerivceCode"`
+}
+
+// ListEndpointsResponse is the response struct for api ListEndpoints
+type ListEndpointsResponse struct {
+ *responses.BaseResponse
+ RequestId string `json:"RequestId" xml:"RequestId"`
+ Success bool `json:"Success" xml:"Success"`
+ EndpointList EndpointListInListEndpoints `json:"EndpointList" xml:"EndpointList"`
+}
+
+// CreateListEndpointsRequest creates a request to invoke ListEndpoints API
+func CreateListEndpointsRequest() (request *ListEndpointsRequest) {
+ request = &ListEndpointsRequest{
+ RpcRequest: &requests.RpcRequest{},
+ }
+ request.InitWithApiInfo("Location", "2015-06-12", "ListEndpoints", "location", "openAPI")
+ return
+}
+
+// CreateListEndpointsResponse creates a response to parse from ListEndpoints response
+func CreateListEndpointsResponse() (response *ListEndpointsResponse) {
+ response = &ListEndpointsResponse{
+ BaseResponse: &responses.BaseResponse{},
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/list_endpoints_by_ip.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/list_endpoints_by_ip.go
new file mode 100644
index 000000000..e5d753038
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/list_endpoints_by_ip.go
@@ -0,0 +1,105 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+ "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ListEndpointsByIp invokes the location.ListEndpointsByIp API synchronously
+// api document: https://help.aliyun.com/api/location/listendpointsbyip.html
+func (client *Client) ListEndpointsByIp(request *ListEndpointsByIpRequest) (response *ListEndpointsByIpResponse, err error) {
+ response = CreateListEndpointsByIpResponse()
+ err = client.DoAction(request, response)
+ return
+}
+
+// ListEndpointsByIpWithChan invokes the location.ListEndpointsByIp API asynchronously
+// api document: https://help.aliyun.com/api/location/listendpointsbyip.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListEndpointsByIpWithChan(request *ListEndpointsByIpRequest) (<-chan *ListEndpointsByIpResponse, <-chan error) {
+ responseChan := make(chan *ListEndpointsByIpResponse, 1)
+ errChan := make(chan error, 1)
+ err := client.AddAsyncTask(func() {
+ defer close(responseChan)
+ defer close(errChan)
+ response, err := client.ListEndpointsByIp(request)
+ if err != nil {
+ errChan <- err
+ } else {
+ responseChan <- response
+ }
+ })
+ if err != nil {
+ errChan <- err
+ close(responseChan)
+ close(errChan)
+ }
+ return responseChan, errChan
+}
+
+// ListEndpointsByIpWithCallback invokes the location.ListEndpointsByIp API asynchronously
+// api document: https://help.aliyun.com/api/location/listendpointsbyip.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListEndpointsByIpWithCallback(request *ListEndpointsByIpRequest, callback func(response *ListEndpointsByIpResponse, err error)) <-chan int {
+ result := make(chan int, 1)
+ err := client.AddAsyncTask(func() {
+ var response *ListEndpointsByIpResponse
+ var err error
+ defer close(result)
+ response, err = client.ListEndpointsByIp(request)
+ callback(response, err)
+ result <- 1
+ })
+ if err != nil {
+ defer close(result)
+ callback(nil, err)
+ result <- 0
+ }
+ return result
+}
+
+// ListEndpointsByIpRequest is the request struct for api ListEndpointsByIp
+type ListEndpointsByIpRequest struct {
+ *requests.RpcRequest
+ Ip string `position:"Query" name:"Ip"`
+}
+
+// ListEndpointsByIpResponse is the response struct for api ListEndpointsByIp
+type ListEndpointsByIpResponse struct {
+ *responses.BaseResponse
+ RequestId string `json:"RequestId" xml:"RequestId"`
+ Success bool `json:"Success" xml:"Success"`
+ EndpointList EndpointListInListEndpointsByIp `json:"EndpointList" xml:"EndpointList"`
+}
+
+// CreateListEndpointsByIpRequest creates a request to invoke ListEndpointsByIp API
+func CreateListEndpointsByIpRequest() (request *ListEndpointsByIpRequest) {
+ request = &ListEndpointsByIpRequest{
+ RpcRequest: &requests.RpcRequest{},
+ }
+ request.InitWithApiInfo("Location", "2015-06-12", "ListEndpointsByIp", "location", "openAPI")
+ return
+}
+
+// CreateListEndpointsByIpResponse creates a response to parse from ListEndpointsByIp response
+func CreateListEndpointsByIpResponse() (response *ListEndpointsByIpResponse) {
+ response = &ListEndpointsByIpResponse{
+ BaseResponse: &responses.BaseResponse{},
+ }
+ return
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint.go
new file mode 100644
index 000000000..1856a795a
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint.go
@@ -0,0 +1,26 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Endpoint is a nested struct in location response
+type Endpoint struct {
+ Endpoint string `json:"Endpoint" xml:"Endpoint"`
+ Id string `json:"Id" xml:"Id"`
+ Namespace string `json:"Namespace" xml:"Namespace"`
+ SerivceCode string `json:"SerivceCode" xml:"SerivceCode"`
+ Type string `json:"Type" xml:"Type"`
+ Protocols ProtocolsInDescribeEndpoints `json:"Protocols" xml:"Protocols"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint_list_in_list_endpoints.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint_list_in_list_endpoints.go
new file mode 100644
index 000000000..b41f43f54
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint_list_in_list_endpoints.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// EndpointListInListEndpoints is a nested struct in location response
+type EndpointListInListEndpoints struct {
+ ItemEndpoint []ItemEndpoint `json:"ItemEndpoint" xml:"ItemEndpoint"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint_list_in_list_endpoints_by_ip.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint_list_in_list_endpoints_by_ip.go
new file mode 100644
index 000000000..75a1ea0cb
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoint_list_in_list_endpoints_by_ip.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// EndpointListInListEndpointsByIp is a nested struct in location response
+type EndpointListInListEndpointsByIp struct {
+ ItemEndpoint []ItemEndpoint `json:"ItemEndpoint" xml:"ItemEndpoint"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoints.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoints.go
new file mode 100644
index 000000000..e55882a65
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_endpoints.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Endpoints is a nested struct in location response
+type Endpoints struct {
+ Endpoint []Endpoint `json:"Endpoint" xml:"Endpoint"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_item_endpoint.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_item_endpoint.go
new file mode 100644
index 000000000..099768f1d
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_item_endpoint.go
@@ -0,0 +1,26 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ItemEndpoint is a nested struct in location response
+type ItemEndpoint struct {
+ Endpoint string `json:"Endpoint" xml:"Endpoint"`
+ Product string `json:"Product" xml:"Product"`
+ Namespace string `json:"Namespace" xml:"Namespace"`
+ Id string `json:"Id" xml:"Id"`
+ Type string `json:"Type" xml:"Type"`
+ Protocols ProtocolsInListEndpointsByIp `json:"Protocols" xml:"Protocols"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_describe_endpoint.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_describe_endpoint.go
new file mode 100644
index 000000000..d1d2d794d
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_describe_endpoint.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ProtocolsInDescribeEndpoint is a nested struct in location response
+type ProtocolsInDescribeEndpoint struct {
+ Protocols []string `json:"Protocols" xml:"Protocols"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_describe_endpoints.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_describe_endpoints.go
new file mode 100644
index 000000000..c79d4da87
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_describe_endpoints.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ProtocolsInDescribeEndpoints is a nested struct in location response
+type ProtocolsInDescribeEndpoints struct {
+ Protocols []string `json:"Protocols" xml:"Protocols"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_list_endpoints.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_list_endpoints.go
new file mode 100644
index 000000000..610069146
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_list_endpoints.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ProtocolsInListEndpoints is a nested struct in location response
+type ProtocolsInListEndpoints struct {
+ Protocols []string `json:"Protocols" xml:"Protocols"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_list_endpoints_by_ip.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_list_endpoints_by_ip.go
new file mode 100644
index 000000000..962d2c04c
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_protocols_in_list_endpoints_by_ip.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ProtocolsInListEndpointsByIp is a nested struct in location response
+type ProtocolsInListEndpointsByIp struct {
+ Protocols []string `json:"Protocols" xml:"Protocols"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_region_ids.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_region_ids.go
new file mode 100644
index 000000000..0f1fbe3bd
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_region_ids.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// RegionIds is a nested struct in location response
+type RegionIds struct {
+ RegionIds []string `json:"RegionIds" xml:"RegionIds"`
+}
diff --git a/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_services.go b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_services.go
new file mode 100644
index 000000000..b3e934c59
--- /dev/null
+++ b/vendor/github.com/aliyun/alibaba-cloud-sdk-go/services/location/struct_services.go
@@ -0,0 +1,21 @@
+package location
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Services is a nested struct in location response
+type Services struct {
+ Services []string `json:"Services" xml:"Services"`
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/auth.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/auth.go
new file mode 100644
index 000000000..ee90591b2
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/auth.go
@@ -0,0 +1,97 @@
+package oss
+
+import (
+ "bytes"
+ "crypto/hmac"
+ "crypto/sha1"
+ "encoding/base64"
+ "hash"
+ "io"
+ "net/http"
+ "sort"
+ "strings"
+)
+
+// headerSorter defines the key-value structure for storing the sorted data in signHeader.
+type headerSorter struct {
+ Keys []string
+ Vals []string
+}
+
+// signHeader signs the header and sets it as the authorization header.
+func (conn Conn) signHeader(req *http.Request, canonicalizedResource string) {
+ // Get the final authorization string
+ authorizationStr := "OSS " + conn.config.AccessKeyID + ":" + conn.getSignedStr(req, canonicalizedResource)
+
+ // Give the parameter "Authorization" value
+ req.Header.Set(HTTPHeaderAuthorization, authorizationStr)
+}
+
+func (conn Conn) getSignedStr(req *http.Request, canonicalizedResource string) string {
+ // Find out the "x-oss-"'s address in header of the request
+ temp := make(map[string]string)
+
+ for k, v := range req.Header {
+ if strings.HasPrefix(strings.ToLower(k), "x-oss-") {
+ temp[strings.ToLower(k)] = v[0]
+ }
+ }
+ hs := newHeaderSorter(temp)
+
+ // Sort the temp by the ascending order
+ hs.Sort()
+
+ // Get the canonicalizedOSSHeaders
+ canonicalizedOSSHeaders := ""
+ for i := range hs.Keys {
+ canonicalizedOSSHeaders += hs.Keys[i] + ":" + hs.Vals[i] + "\n"
+ }
+
+ // Give other parameters values
+ // when sign URL, date is expires
+ date := req.Header.Get(HTTPHeaderDate)
+ contentType := req.Header.Get(HTTPHeaderContentType)
+ contentMd5 := req.Header.Get(HTTPHeaderContentMD5)
+
+ signStr := req.Method + "\n" + contentMd5 + "\n" + contentType + "\n" + date + "\n" + canonicalizedOSSHeaders + canonicalizedResource
+ h := hmac.New(func() hash.Hash { return sha1.New() }, []byte(conn.config.AccessKeySecret))
+ io.WriteString(h, signStr)
+ signedStr := base64.StdEncoding.EncodeToString(h.Sum(nil))
+
+ return signedStr
+}
+
+// newHeaderSorter is an additional function for function SignHeader.
+func newHeaderSorter(m map[string]string) *headerSorter {
+ hs := &headerSorter{
+ Keys: make([]string, 0, len(m)),
+ Vals: make([]string, 0, len(m)),
+ }
+
+ for k, v := range m {
+ hs.Keys = append(hs.Keys, k)
+ hs.Vals = append(hs.Vals, v)
+ }
+ return hs
+}
+
+// Sort is an additional function for function SignHeader.
+func (hs *headerSorter) Sort() {
+ sort.Sort(hs)
+}
+
+// Len is an additional function for function SignHeader.
+func (hs *headerSorter) Len() int {
+ return len(hs.Vals)
+}
+
+// Less is an additional function for function SignHeader.
+func (hs *headerSorter) Less(i, j int) bool {
+ return bytes.Compare([]byte(hs.Keys[i]), []byte(hs.Keys[j])) < 0
+}
+
+// Swap is an additional function for function SignHeader.
+func (hs *headerSorter) Swap(i, j int) {
+ hs.Vals[i], hs.Vals[j] = hs.Vals[j], hs.Vals[i]
+ hs.Keys[i], hs.Keys[j] = hs.Keys[j], hs.Keys[i]
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/bucket.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/bucket.go
new file mode 100644
index 000000000..067855e09
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/bucket.go
@@ -0,0 +1,973 @@
+package oss
+
+import (
+ "bytes"
+ "crypto/md5"
+ "encoding/base64"
+ "encoding/xml"
+ "fmt"
+ "hash"
+ "hash/crc64"
+ "io"
+ "net/http"
+ "net/url"
+ "os"
+ "strconv"
+ "strings"
+ "time"
+)
+
+// Bucket implements the operations of object.
+type Bucket struct {
+ Client Client
+ BucketName string
+}
+
+// PutObject creates a new object and it will overwrite the original one if it exists already.
+//
+// objectKey the object key in UTF-8 encoding. The length must be between 1 and 1023, and cannot start with "/" or "\".
+// reader io.Reader instance for reading the data for uploading
+// options the options for uploading the object. The valid options here are CacheControl, ContentDisposition, ContentEncoding
+// Expires, ServerSideEncryption, ObjectACL and Meta. Refer to the link below for more details.
+// https://help.aliyun.com/document_detail/oss/api-reference/object/PutObject.html
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) PutObject(objectKey string, reader io.Reader, options ...Option) error {
+ opts := addContentType(options, objectKey)
+
+ request := &PutObjectRequest{
+ ObjectKey: objectKey,
+ Reader: reader,
+ }
+ resp, err := bucket.DoPutObject(request, opts)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ return err
+}
+
+// PutObjectFromFile creates a new object from the local file.
+//
+// objectKey object key.
+// filePath the local file path to upload.
+// options the options for uploading the object. Refer to the parameter options in PutObject for more details.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) PutObjectFromFile(objectKey, filePath string, options ...Option) error {
+ fd, err := os.Open(filePath)
+ if err != nil {
+ return err
+ }
+ defer fd.Close()
+
+ opts := addContentType(options, filePath, objectKey)
+
+ request := &PutObjectRequest{
+ ObjectKey: objectKey,
+ Reader: fd,
+ }
+ resp, err := bucket.DoPutObject(request, opts)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ return err
+}
+
+// DoPutObject does the actual upload work.
+//
+// request the request instance for uploading an object.
+// options the options for uploading an object.
+//
+// Response the response from OSS.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DoPutObject(request *PutObjectRequest, options []Option) (*Response, error) {
+ isOptSet, _, _ := isOptionSet(options, HTTPHeaderContentType)
+ if !isOptSet {
+ options = addContentType(options, request.ObjectKey)
+ }
+
+ listener := getProgressListener(options)
+
+ params := map[string]interface{}{}
+ resp, err := bucket.do("PUT", request.ObjectKey, params, options, request.Reader, listener)
+ if err != nil {
+ return nil, err
+ }
+
+ if bucket.getConfig().IsEnableCRC {
+ err = checkCRC(resp, "DoPutObject")
+ if err != nil {
+ return resp, err
+ }
+ }
+
+ err = checkRespCode(resp.StatusCode, []int{http.StatusOK})
+
+ return resp, err
+}
+
+// GetObject downloads the object.
+//
+// objectKey the object key.
+// options the options for downloading the object. The valid values are: Range, IfModifiedSince, IfUnmodifiedSince, IfMatch,
+// IfNoneMatch, AcceptEncoding. For more details, please check out:
+// https://help.aliyun.com/document_detail/oss/api-reference/object/GetObject.html
+//
+// io.ReadCloser reader instance for reading data from response. It must be called close() after the usage and only valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) GetObject(objectKey string, options ...Option) (io.ReadCloser, error) {
+ result, err := bucket.DoGetObject(&GetObjectRequest{objectKey}, options)
+ if err != nil {
+ return nil, err
+ }
+
+ return result.Response, nil
+}
+
+// GetObjectToFile downloads the data to a local file.
+//
+// objectKey the object key to download.
+// filePath the local file to store the object data.
+// options the options for downloading the object. Refer to the parameter options in method GetObject for more details.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) GetObjectToFile(objectKey, filePath string, options ...Option) error {
+ tempFilePath := filePath + TempFileSuffix
+
+ // Calls the API to actually download the object. Returns the result instance.
+ result, err := bucket.DoGetObject(&GetObjectRequest{objectKey}, options)
+ if err != nil {
+ return err
+ }
+ defer result.Response.Close()
+
+ // If the local file does not exist, create a new one. If it exists, overwrite it.
+ fd, err := os.OpenFile(tempFilePath, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, FilePermMode)
+ if err != nil {
+ return err
+ }
+
+ // Copy the data to the local file path.
+ _, err = io.Copy(fd, result.Response.Body)
+ fd.Close()
+ if err != nil {
+ return err
+ }
+
+ // Compares the CRC value
+ hasRange, _, _ := isOptionSet(options, HTTPHeaderRange)
+ encodeOpt, _ := findOption(options, HTTPHeaderAcceptEncoding, nil)
+ acceptEncoding := ""
+ if encodeOpt != nil {
+ acceptEncoding = encodeOpt.(string)
+ }
+ if bucket.getConfig().IsEnableCRC && !hasRange && acceptEncoding != "gzip" {
+ result.Response.ClientCRC = result.ClientCRC.Sum64()
+ err = checkCRC(result.Response, "GetObjectToFile")
+ if err != nil {
+ os.Remove(tempFilePath)
+ return err
+ }
+ }
+
+ return os.Rename(tempFilePath, filePath)
+}
+
+// DoGetObject is the actual API that gets the object. It's the internal function called by other public APIs.
+//
+// request the request to download the object.
+// options the options for downloading the file. Checks out the parameter options in method GetObject.
+//
+// GetObjectResult the result instance of getting the object.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DoGetObject(request *GetObjectRequest, options []Option) (*GetObjectResult, error) {
+ params, _ := getRawParams(options)
+ resp, err := bucket.do("GET", request.ObjectKey, params, options, nil, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ result := &GetObjectResult{
+ Response: resp,
+ }
+
+ // CRC
+ var crcCalc hash.Hash64
+ hasRange, _, _ := isOptionSet(options, HTTPHeaderRange)
+ if bucket.getConfig().IsEnableCRC && !hasRange {
+ crcCalc = crc64.New(crcTable())
+ result.ServerCRC = resp.ServerCRC
+ result.ClientCRC = crcCalc
+ }
+
+ // Progress
+ listener := getProgressListener(options)
+
+ contentLen, _ := strconv.ParseInt(resp.Headers.Get(HTTPHeaderContentLength), 10, 64)
+ resp.Body = TeeReader(resp.Body, crcCalc, contentLen, listener, nil)
+
+ return result, nil
+}
+
+// CopyObject copies the object inside the bucket.
+//
+// srcObjectKey the source object to copy.
+// destObjectKey the target object to copy.
+// options options for copying an object. You can specify the conditions of copy. The valid conditions are CopySourceIfMatch,
+// CopySourceIfNoneMatch, CopySourceIfModifiedSince, CopySourceIfUnmodifiedSince, MetadataDirective.
+// Also you can specify the target object's attributes, such as CacheControl, ContentDisposition, ContentEncoding, Expires,
+// ServerSideEncryption, ObjectACL, Meta. Refer to the link below for more details :
+// https://help.aliyun.com/document_detail/oss/api-reference/object/CopyObject.html
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) CopyObject(srcObjectKey, destObjectKey string, options ...Option) (CopyObjectResult, error) {
+ var out CopyObjectResult
+ options = append(options, CopySource(bucket.BucketName, url.QueryEscape(srcObjectKey)))
+ params := map[string]interface{}{}
+ resp, err := bucket.do("PUT", destObjectKey, params, options, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// CopyObjectTo copies the object to another bucket.
+//
+// srcObjectKey source object key. The source bucket is Bucket.BucketName .
+// destBucketName target bucket name.
+// destObjectKey target object name.
+// options copy options, check out parameter options in function CopyObject for more details.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) CopyObjectTo(destBucketName, destObjectKey, srcObjectKey string, options ...Option) (CopyObjectResult, error) {
+ return bucket.copy(srcObjectKey, destBucketName, destObjectKey, options...)
+}
+
+//
+// CopyObjectFrom copies the object to another bucket.
+//
+// srcBucketName source bucket name.
+// srcObjectKey source object name.
+// destObjectKey target object name. The target bucket name is Bucket.BucketName.
+// options copy options. Check out parameter options in function CopyObject.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) CopyObjectFrom(srcBucketName, srcObjectKey, destObjectKey string, options ...Option) (CopyObjectResult, error) {
+ destBucketName := bucket.BucketName
+ var out CopyObjectResult
+ srcBucket, err := bucket.Client.Bucket(srcBucketName)
+ if err != nil {
+ return out, err
+ }
+
+ return srcBucket.copy(srcObjectKey, destBucketName, destObjectKey, options...)
+}
+
+func (bucket Bucket) copy(srcObjectKey, destBucketName, destObjectKey string, options ...Option) (CopyObjectResult, error) {
+ var out CopyObjectResult
+ options = append(options, CopySource(bucket.BucketName, url.QueryEscape(srcObjectKey)))
+ headers := make(map[string]string)
+ err := handleOptions(headers, options)
+ if err != nil {
+ return out, err
+ }
+ params := map[string]interface{}{}
+ resp, err := bucket.Client.Conn.Do("PUT", destBucketName, destObjectKey, params, headers, nil, 0, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// AppendObject uploads the data in the way of appending an existing or new object.
+//
+// AppendObject the parameter appendPosition specifies which postion (in the target object) to append. For the first append (to a non-existing file),
+// the appendPosition should be 0. The appendPosition in the subsequent calls will be the current object length.
+// For example, the first appendObject's appendPosition is 0 and it uploaded 65536 bytes data, then the second call's position is 65536.
+// The response header x-oss-next-append-position after each successful request also specifies the next call's append position (so the caller need not to maintain this information).
+//
+// objectKey the target object to append to.
+// reader io.Reader. The read instance for reading the data to append.
+// appendPosition the start position to append.
+// destObjectProperties the options for the first appending, such as CacheControl, ContentDisposition, ContentEncoding,
+// Expires, ServerSideEncryption, ObjectACL.
+//
+// int64 the next append position, it's valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) AppendObject(objectKey string, reader io.Reader, appendPosition int64, options ...Option) (int64, error) {
+ request := &AppendObjectRequest{
+ ObjectKey: objectKey,
+ Reader: reader,
+ Position: appendPosition,
+ }
+
+ result, err := bucket.DoAppendObject(request, options)
+ if err != nil {
+ return appendPosition, err
+ }
+
+ return result.NextPosition, err
+}
+
+// DoAppendObject is the actual API that does the object append.
+//
+// request the request object for appending object.
+// options the options for appending object.
+//
+// AppendObjectResult the result object for appending object.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DoAppendObject(request *AppendObjectRequest, options []Option) (*AppendObjectResult, error) {
+ params := map[string]interface{}{}
+ params["append"] = nil
+ params["position"] = strconv.FormatInt(request.Position, 10)
+ headers := make(map[string]string)
+
+ opts := addContentType(options, request.ObjectKey)
+ handleOptions(headers, opts)
+
+ var initCRC uint64
+ isCRCSet, initCRCOpt, _ := isOptionSet(options, initCRC64)
+ if isCRCSet {
+ initCRC = initCRCOpt.(uint64)
+ }
+
+ listener := getProgressListener(options)
+
+ handleOptions(headers, opts)
+ resp, err := bucket.Client.Conn.Do("POST", bucket.BucketName, request.ObjectKey, params, headers,
+ request.Reader, initCRC, listener)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ nextPosition, _ := strconv.ParseInt(resp.Headers.Get(HTTPHeaderOssNextAppendPosition), 10, 64)
+ result := &AppendObjectResult{
+ NextPosition: nextPosition,
+ CRC: resp.ServerCRC,
+ }
+
+ if bucket.getConfig().IsEnableCRC && isCRCSet {
+ err = checkCRC(resp, "AppendObject")
+ if err != nil {
+ return result, err
+ }
+ }
+
+ return result, nil
+}
+
+// DeleteObject deletes the object.
+//
+// objectKey the object key to delete.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DeleteObject(objectKey string) error {
+ params := map[string]interface{}{}
+ resp, err := bucket.do("DELETE", objectKey, params, nil, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusNoContent})
+}
+
+// DeleteObjects deletes multiple objects.
+//
+// objectKeys the object keys to delete.
+// options the options for deleting objects.
+// Supported option is DeleteObjectsQuiet which means it will not return error even deletion failed (not recommended). By default it's not used.
+//
+// DeleteObjectsResult the result object.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DeleteObjects(objectKeys []string, options ...Option) (DeleteObjectsResult, error) {
+ out := DeleteObjectsResult{}
+ dxml := deleteXML{}
+ for _, key := range objectKeys {
+ dxml.Objects = append(dxml.Objects, DeleteObject{Key: key})
+ }
+ isQuiet, _ := findOption(options, deleteObjectsQuiet, false)
+ dxml.Quiet = isQuiet.(bool)
+
+ bs, err := xml.Marshal(dxml)
+ if err != nil {
+ return out, err
+ }
+ buffer := new(bytes.Buffer)
+ buffer.Write(bs)
+
+ contentType := http.DetectContentType(buffer.Bytes())
+ options = append(options, ContentType(contentType))
+ sum := md5.Sum(bs)
+ b64 := base64.StdEncoding.EncodeToString(sum[:])
+ options = append(options, ContentMD5(b64))
+
+ params := map[string]interface{}{}
+ params["delete"] = nil
+ params["encoding-type"] = "url"
+
+ resp, err := bucket.do("POST", "", params, options, buffer, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ if !dxml.Quiet {
+ if err = xmlUnmarshal(resp.Body, &out); err == nil {
+ err = decodeDeleteObjectsResult(&out)
+ }
+ }
+ return out, err
+}
+
+// IsObjectExist checks if the object exists.
+//
+// bool flag of object's existence (true:exists; false:non-exist) when error is nil.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) IsObjectExist(objectKey string) (bool, error) {
+ _, err := bucket.GetObjectMeta(objectKey)
+ if err == nil {
+ return true, nil
+ }
+
+ switch err.(type) {
+ case ServiceError:
+ if err.(ServiceError).StatusCode == 404 {
+ return false, nil
+ }
+ }
+
+ return false, err
+}
+
+// ListObjects lists the objects under the current bucket.
+//
+// options it contains all the filters for listing objects.
+// It could specify a prefix filter on object keys, the max keys count to return and the object key marker and the delimiter for grouping object names.
+// The key marker means the returned objects' key must be greater than it in lexicographic order.
+//
+// For example, if the bucket has 8 objects, my-object-1, my-object-11, my-object-2, my-object-21,
+// my-object-22, my-object-3, my-object-31, my-object-32. If the prefix is my-object-2 (no other filters), then it returns
+// my-object-2, my-object-21, my-object-22 three objects. If the marker is my-object-22 (no other filters), then it returns
+// my-object-3, my-object-31, my-object-32 three objects. If the max keys is 5, then it returns 5 objects.
+// The three filters could be used together to achieve filter and paging functionality.
+// If the prefix is the folder name, then it could list all files under this folder (including the files under its subfolders).
+// But if the delimiter is specified with '/', then it only returns that folder's files (no subfolder's files). The direct subfolders are in the commonPrefixes properties.
+// For example, if the bucket has three objects fun/test.jpg, fun/movie/001.avi, fun/movie/007.avi. And if the prefix is "fun/", then it returns all three objects.
+// But if the delimiter is '/', then only "fun/test.jpg" is returned as files and fun/movie/ is returned as common prefix.
+//
+// For common usage scenario, check out sample/list_object.go.
+//
+// ListObjectsResponse the return value after operation succeeds (only valid when error is nil).
+//
+func (bucket Bucket) ListObjects(options ...Option) (ListObjectsResult, error) {
+ var out ListObjectsResult
+
+ options = append(options, EncodingType("url"))
+ params, err := getRawParams(options)
+ if err != nil {
+ return out, err
+ }
+
+ resp, err := bucket.do("GET", "", params, options, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ if err != nil {
+ return out, err
+ }
+
+ err = decodeListObjectsResult(&out)
+ return out, err
+}
+
+// SetObjectMeta sets the metadata of the Object.
+//
+// objectKey object
+// options options for setting the metadata. The valid options are CacheControl, ContentDisposition, ContentEncoding, Expires,
+// ServerSideEncryption, and custom metadata.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) SetObjectMeta(objectKey string, options ...Option) error {
+ options = append(options, MetadataDirective(MetaReplace))
+ _, err := bucket.CopyObject(objectKey, objectKey, options...)
+ return err
+}
+
+// GetObjectDetailedMeta gets the object's detailed metadata
+//
+// objectKey object key.
+// options the constraints of the object. Only when the object meets the requirements this method will return the metadata. Otherwise returns error. Valid options are IfModifiedSince, IfUnmodifiedSince,
+// IfMatch, IfNoneMatch. For more details check out https://help.aliyun.com/document_detail/oss/api-reference/object/HeadObject.html
+//
+// http.Header object meta when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) GetObjectDetailedMeta(objectKey string, options ...Option) (http.Header, error) {
+ params := map[string]interface{}{}
+ resp, err := bucket.do("HEAD", objectKey, params, options, nil, nil)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ return resp.Headers, nil
+}
+
+// GetObjectMeta gets object metadata.
+//
+// GetObjectMeta is more lightweight than GetObjectDetailedMeta as it only returns basic metadata including ETag
+// size, LastModified. The size information is in the HTTP header Content-Length.
+//
+// objectKey object key
+//
+// http.Header the object's metadata, valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) GetObjectMeta(objectKey string, options ...Option) (http.Header, error) {
+ params := map[string]interface{}{}
+ params["objectMeta"] = nil
+ //resp, err := bucket.do("GET", objectKey, "?objectMeta", "", nil, nil, nil)
+ resp, err := bucket.do("HEAD", objectKey, params, options, nil, nil)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ return resp.Headers, nil
+}
+
+// SetObjectACL updates the object's ACL.
+//
+// Only the bucket's owner could update object's ACL which priority is higher than bucket's ACL.
+// For example, if the bucket ACL is private and object's ACL is public-read-write.
+// Then object's ACL is used and it means all users could read or write that object.
+// When the object's ACL is not set, then bucket's ACL is used as the object's ACL.
+//
+// Object read operations include GetObject, HeadObject, CopyObject and UploadPartCopy on the source object;
+// Object write operations include PutObject, PostObject, AppendObject, DeleteObject, DeleteMultipleObjects,
+// CompleteMultipartUpload and CopyObject on target object.
+//
+// objectKey the target object key (to set the ACL on)
+// objectAcl object ACL. Valid options are PrivateACL, PublicReadACL, PublicReadWriteACL.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) SetObjectACL(objectKey string, objectACL ACLType) error {
+ options := []Option{ObjectACL(objectACL)}
+ params := map[string]interface{}{}
+ params["acl"] = nil
+ resp, err := bucket.do("PUT", objectKey, params, options, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// GetObjectACL gets object's ACL
+//
+// objectKey the object to get ACL from.
+//
+// GetObjectACLResult the result object when error is nil. GetObjectACLResult.Acl is the object ACL.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) GetObjectACL(objectKey string) (GetObjectACLResult, error) {
+ var out GetObjectACLResult
+ params := map[string]interface{}{}
+ params["acl"] = nil
+ resp, err := bucket.do("GET", objectKey, params, nil, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// PutSymlink creates a symlink (to point to an existing object)
+//
+// Symlink cannot point to another symlink.
+// When creating a symlink, it does not check the existence of the target file, and does not check if the target file is symlink.
+// Neither it checks the caller's permission on the target file. All these checks are deferred to the actual GetObject call via this symlink.
+// If trying to add an existing file, as long as the caller has the write permission, the existing one will be overwritten.
+// If the x-oss-meta- is specified, it will be added as the metadata of the symlink file.
+//
+// symObjectKey the symlink object's key.
+// targetObjectKey the target object key to point to.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) PutSymlink(symObjectKey string, targetObjectKey string, options ...Option) error {
+ options = append(options, symlinkTarget(url.QueryEscape(targetObjectKey)))
+ params := map[string]interface{}{}
+ params["symlink"] = nil
+ resp, err := bucket.do("PUT", symObjectKey, params, options, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// GetSymlink gets the symlink object with the specified key.
+// If the symlink object does not exist, returns 404.
+//
+// objectKey the symlink object's key.
+//
+// error it's nil if no error, otherwise it's an error object.
+// When error is nil, the target file key is in the X-Oss-Symlink-Target header of the returned object.
+//
+func (bucket Bucket) GetSymlink(objectKey string) (http.Header, error) {
+ params := map[string]interface{}{}
+ params["symlink"] = nil
+ resp, err := bucket.do("GET", objectKey, params, nil, nil, nil)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ targetObjectKey := resp.Headers.Get(HTTPHeaderOssSymlinkTarget)
+ targetObjectKey, err = url.QueryUnescape(targetObjectKey)
+ if err != nil {
+ return resp.Headers, err
+ }
+ resp.Headers.Set(HTTPHeaderOssSymlinkTarget, targetObjectKey)
+ return resp.Headers, err
+}
+
+// RestoreObject restores the object from the archive storage.
+//
+// An archive object is in cold status by default and it cannot be accessed.
+// When restore is called on the cold object, it will become available for access after some time.
+// If multiple restores are called on the same file when the object is being restored, server side does nothing for additional calls but returns success.
+// By default, the restored object is available for access for one day. After that it will be unavailable again.
+// But if another RestoreObject are called after the file is restored, then it will extend one day's access time of that object, up to 7 days.
+//
+// objectKey object key to restore.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) RestoreObject(objectKey string) error {
+ params := map[string]interface{}{}
+ params["restore"] = nil
+ resp, err := bucket.do("POST", objectKey, params, nil, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK, http.StatusAccepted})
+}
+
+// SignURL signs the URL. Users could access the object directly with this URL without getting the AK.
+//
+// objectKey the target object to sign.
+// signURLConfig the configuration for the signed URL
+//
+// string returns the signed URL, when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) SignURL(objectKey string, method HTTPMethod, expiredInSec int64, options ...Option) (string, error) {
+ if expiredInSec < 0 {
+ return "", fmt.Errorf("invalid expires: %d, expires must bigger than 0", expiredInSec)
+ }
+ expiration := time.Now().Unix() + expiredInSec
+
+ params, err := getRawParams(options)
+ if err != nil {
+ return "", err
+ }
+
+ headers := make(map[string]string)
+ err = handleOptions(headers, options)
+ if err != nil {
+ return "", err
+ }
+
+ return bucket.Client.Conn.signURL(method, bucket.BucketName, objectKey, expiration, params, headers), nil
+}
+
+// PutObjectWithURL uploads an object with the URL. If the object exists, it will be overwritten.
+// PutObjectWithURL It will not generate minetype according to the key name.
+//
+// signedURL signed URL.
+// reader io.Reader the read instance for reading the data for the upload.
+// options the options for uploading the data. The valid options are CacheControl, ContentDisposition, ContentEncoding,
+// Expires, ServerSideEncryption, ObjectACL and custom metadata. Check out the following link for details:
+// https://help.aliyun.com/document_detail/oss/api-reference/object/PutObject.html
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) PutObjectWithURL(signedURL string, reader io.Reader, options ...Option) error {
+ resp, err := bucket.DoPutObjectWithURL(signedURL, reader, options)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ return err
+}
+
+// PutObjectFromFileWithURL uploads an object from a local file with the signed URL.
+// PutObjectFromFileWithURL It does not generate mimetype according to object key's name or the local file name.
+//
+// signedURL the signed URL.
+// filePath local file path, such as dirfile.txt, for uploading.
+// options options for uploading, same as the options in PutObject function.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) PutObjectFromFileWithURL(signedURL, filePath string, options ...Option) error {
+ fd, err := os.Open(filePath)
+ if err != nil {
+ return err
+ }
+ defer fd.Close()
+
+ resp, err := bucket.DoPutObjectWithURL(signedURL, fd, options)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ return err
+}
+
+// DoPutObjectWithURL is the actual API that does the upload with URL work(internal for SDK)
+//
+// signedURL the signed URL.
+// reader io.Reader the read instance for getting the data to upload.
+// options options for uploading.
+//
+// Response the response object which contains the HTTP response.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DoPutObjectWithURL(signedURL string, reader io.Reader, options []Option) (*Response, error) {
+ listener := getProgressListener(options)
+
+ params := map[string]interface{}{}
+ resp, err := bucket.doURL("PUT", signedURL, params, options, reader, listener)
+ if err != nil {
+ return nil, err
+ }
+
+ if bucket.getConfig().IsEnableCRC {
+ err = checkCRC(resp, "DoPutObjectWithURL")
+ if err != nil {
+ return resp, err
+ }
+ }
+
+ err = checkRespCode(resp.StatusCode, []int{http.StatusOK})
+
+ return resp, err
+}
+
+// GetObjectWithURL downloads the object and returns the reader instance, with the signed URL.
+//
+// signedURL the signed URL.
+// options options for downloading the object. Valid options are IfModifiedSince, IfUnmodifiedSince, IfMatch,
+// IfNoneMatch, AcceptEncoding. For more information, check out the following link:
+// https://help.aliyun.com/document_detail/oss/api-reference/object/GetObject.html
+//
+// io.ReadCloser the reader object for getting the data from response. It needs be closed after the usage. It's only valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) GetObjectWithURL(signedURL string, options ...Option) (io.ReadCloser, error) {
+ result, err := bucket.DoGetObjectWithURL(signedURL, options)
+ if err != nil {
+ return nil, err
+ }
+ return result.Response, nil
+}
+
+// GetObjectToFileWithURL downloads the object into a local file with the signed URL.
+//
+// signedURL the signed URL
+// filePath the local file path to download to.
+// options the options for downloading object. Check out the parameter options in function GetObject for the reference.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) GetObjectToFileWithURL(signedURL, filePath string, options ...Option) error {
+ tempFilePath := filePath + TempFileSuffix
+
+ // Get the object's content
+ result, err := bucket.DoGetObjectWithURL(signedURL, options)
+ if err != nil {
+ return err
+ }
+ defer result.Response.Close()
+
+ // If the file does not exist, create one. If exists, then overwrite it.
+ fd, err := os.OpenFile(tempFilePath, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, FilePermMode)
+ if err != nil {
+ return err
+ }
+
+ // Save the data to the file.
+ _, err = io.Copy(fd, result.Response.Body)
+ fd.Close()
+ if err != nil {
+ return err
+ }
+
+ // Compare the CRC value. If CRC values do not match, return error.
+ hasRange, _, _ := isOptionSet(options, HTTPHeaderRange)
+ encodeOpt, _ := findOption(options, HTTPHeaderAcceptEncoding, nil)
+ acceptEncoding := ""
+ if encodeOpt != nil {
+ acceptEncoding = encodeOpt.(string)
+ }
+
+ if bucket.getConfig().IsEnableCRC && !hasRange && acceptEncoding != "gzip" {
+ result.Response.ClientCRC = result.ClientCRC.Sum64()
+ err = checkCRC(result.Response, "GetObjectToFileWithURL")
+ if err != nil {
+ os.Remove(tempFilePath)
+ return err
+ }
+ }
+
+ return os.Rename(tempFilePath, filePath)
+}
+
+// DoGetObjectWithURL is the actual API that downloads the file with the signed URL.
+//
+// signedURL the signed URL.
+// options the options for getting object. Check out parameter options in GetObject for the reference.
+//
+// GetObjectResult the result object when the error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DoGetObjectWithURL(signedURL string, options []Option) (*GetObjectResult, error) {
+ params, _ := getRawParams(options)
+ resp, err := bucket.doURL("GET", signedURL, params, options, nil, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ result := &GetObjectResult{
+ Response: resp,
+ }
+
+ // CRC
+ var crcCalc hash.Hash64
+ hasRange, _, _ := isOptionSet(options, HTTPHeaderRange)
+ if bucket.getConfig().IsEnableCRC && !hasRange {
+ crcCalc = crc64.New(crcTable())
+ result.ServerCRC = resp.ServerCRC
+ result.ClientCRC = crcCalc
+ }
+
+ // Progress
+ listener := getProgressListener(options)
+
+ contentLen, _ := strconv.ParseInt(resp.Headers.Get(HTTPHeaderContentLength), 10, 64)
+ resp.Body = TeeReader(resp.Body, crcCalc, contentLen, listener, nil)
+
+ return result, nil
+}
+
+//
+// ProcessObject apply process on the specified image file.
+//
+// The supported process includes resize, rotate, crop, watermark, format,
+// udf, customized style, etc.
+//
+//
+// objectKey object key to process.
+// process process string, such as "image/resize,w_100|sys/saveas,o_dGVzdC5qcGc,b_dGVzdA"
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) ProcessObject(objectKey string, process string) (ProcessObjectResult, error) {
+ var out ProcessObjectResult
+ params := map[string]interface{}{}
+ params["x-oss-process"] = nil
+ processData := fmt.Sprintf("%v=%v", "x-oss-process", process)
+ data := strings.NewReader(processData)
+ resp, err := bucket.do("POST", objectKey, params, nil, data, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = jsonUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// Private
+func (bucket Bucket) do(method, objectName string, params map[string]interface{}, options []Option,
+ data io.Reader, listener ProgressListener) (*Response, error) {
+ headers := make(map[string]string)
+ err := handleOptions(headers, options)
+ if err != nil {
+ return nil, err
+ }
+ return bucket.Client.Conn.Do(method, bucket.BucketName, objectName,
+ params, headers, data, 0, listener)
+}
+
+func (bucket Bucket) doURL(method HTTPMethod, signedURL string, params map[string]interface{}, options []Option,
+ data io.Reader, listener ProgressListener) (*Response, error) {
+ headers := make(map[string]string)
+ err := handleOptions(headers, options)
+ if err != nil {
+ return nil, err
+ }
+ return bucket.Client.Conn.DoURL(method, signedURL, headers, data, 0, listener)
+}
+
+func (bucket Bucket) getConfig() *Config {
+ return bucket.Client.Config
+}
+
+func addContentType(options []Option, keys ...string) []Option {
+ typ := TypeByExtension("")
+ for _, key := range keys {
+ typ = TypeByExtension(key)
+ if typ != "" {
+ break
+ }
+ }
+
+ if typ == "" {
+ typ = "application/octet-stream"
+ }
+
+ opts := []Option{ContentType(typ)}
+ opts = append(opts, options...)
+
+ return opts
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/client.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/client.go
new file mode 100644
index 000000000..d29351c87
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/client.go
@@ -0,0 +1,775 @@
+// Package oss implements functions for access oss service.
+// It has two main struct Client and Bucket.
+package oss
+
+import (
+ "bytes"
+ "encoding/xml"
+ "io"
+ "net/http"
+ "strings"
+ "time"
+)
+
+// Client SDK's entry point. It's for bucket related options such as create/delete/set bucket (such as set/get ACL/lifecycle/referer/logging/website).
+// Object related operations are done by Bucket class.
+// Users use oss.New to create Client instance.
+//
+type (
+ // Client OSS client
+ Client struct {
+ Config *Config // OSS client configuration
+ Conn *Conn // Send HTTP request
+ HTTPClient *http.Client //http.Client to use - if nil will make its own
+ }
+
+ // ClientOption client option such as UseCname, Timeout, SecurityToken.
+ ClientOption func(*Client)
+)
+
+// New creates a new client.
+//
+// endpoint the OSS datacenter endpoint such as http://oss-cn-hangzhou.aliyuncs.com .
+// accessKeyId access key Id.
+// accessKeySecret access key secret.
+//
+// Client creates the new client instance, the returned value is valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func New(endpoint, accessKeyID, accessKeySecret string, options ...ClientOption) (*Client, error) {
+ // Configuration
+ config := getDefaultOssConfig()
+ config.Endpoint = endpoint
+ config.AccessKeyID = accessKeyID
+ config.AccessKeySecret = accessKeySecret
+
+ // URL parse
+ url := &urlMaker{}
+ url.Init(config.Endpoint, config.IsCname, config.IsUseProxy)
+
+ // HTTP connect
+ conn := &Conn{config: config, url: url}
+
+ // OSS client
+ client := &Client{
+ Config: config,
+ Conn: conn,
+ }
+
+ // Client options parse
+ for _, option := range options {
+ option(client)
+ }
+
+ // Create HTTP connection
+ err := conn.init(config, url, client.HTTPClient)
+
+ return client, err
+}
+
+// Bucket gets the bucket instance.
+//
+// bucketName the bucket name.
+// Bucket the bucket object, when error is nil.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) Bucket(bucketName string) (*Bucket, error) {
+ return &Bucket{
+ client,
+ bucketName,
+ }, nil
+}
+
+// CreateBucket creates a bucket.
+//
+// bucketName the bucket name, it's globably unique and immutable. The bucket name can only consist of lowercase letters, numbers and dash ('-').
+// It must start with lowercase letter or number and the length can only be between 3 and 255.
+// options options for creating the bucket, with optional ACL. The ACL could be ACLPrivate, ACLPublicRead, and ACLPublicReadWrite. By default it's ACLPrivate.
+// It could also be specified with StorageClass option, which supports StorageStandard, StorageIA(infrequent access), StorageArchive.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) CreateBucket(bucketName string, options ...Option) error {
+ headers := make(map[string]string)
+ handleOptions(headers, options)
+
+ buffer := new(bytes.Buffer)
+
+ isOptSet, val, _ := isOptionSet(options, storageClass)
+ if isOptSet {
+ cbConfig := createBucketConfiguration{StorageClass: val.(StorageClassType)}
+ bs, err := xml.Marshal(cbConfig)
+ if err != nil {
+ return err
+ }
+ buffer.Write(bs)
+
+ contentType := http.DetectContentType(buffer.Bytes())
+ headers[HTTPHeaderContentType] = contentType
+ }
+
+ params := map[string]interface{}{}
+ resp, err := client.do("PUT", bucketName, params, headers, buffer)
+ if err != nil {
+ return err
+ }
+
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// ListBuckets lists buckets of the current account under the given endpoint, with optional filters.
+//
+// options specifies the filters such as Prefix, Marker and MaxKeys. Prefix is the bucket name's prefix filter.
+// And marker makes sure the returned buckets' name are greater than it in lexicographic order.
+// Maxkeys limits the max keys to return, and by default it's 100 and up to 1000.
+// For the common usage scenario, please check out list_bucket.go in the sample.
+// ListBucketsResponse the response object if error is nil.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) ListBuckets(options ...Option) (ListBucketsResult, error) {
+ var out ListBucketsResult
+
+ params, err := getRawParams(options)
+ if err != nil {
+ return out, err
+ }
+
+ resp, err := client.do("GET", "", params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// IsBucketExist checks if the bucket exists
+//
+// bucketName the bucket name.
+//
+// bool true if it exists, and it's only valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) IsBucketExist(bucketName string) (bool, error) {
+ listRes, err := client.ListBuckets(Prefix(bucketName), MaxKeys(1))
+ if err != nil {
+ return false, err
+ }
+
+ if len(listRes.Buckets) == 1 && listRes.Buckets[0].Name == bucketName {
+ return true, nil
+ }
+ return false, nil
+}
+
+// DeleteBucket deletes the bucket. Only empty bucket can be deleted (no object and parts).
+//
+// bucketName the bucket name.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) DeleteBucket(bucketName string) error {
+ params := map[string]interface{}{}
+ resp, err := client.do("DELETE", bucketName, params, nil, nil)
+ if err != nil {
+ return err
+ }
+
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusNoContent})
+}
+
+// GetBucketLocation gets the bucket location.
+//
+// Checks out the following link for more information :
+// https://help.aliyun.com/document_detail/oss/user_guide/oss_concept/endpoint.html
+//
+// bucketName the bucket name
+//
+// string bucket's datacenter location
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketLocation(bucketName string) (string, error) {
+ params := map[string]interface{}{}
+ params["location"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return "", err
+ }
+ defer resp.Body.Close()
+
+ var LocationConstraint string
+ err = xmlUnmarshal(resp.Body, &LocationConstraint)
+ return LocationConstraint, err
+}
+
+// SetBucketACL sets bucket's ACL.
+//
+// bucketName the bucket name
+// bucketAcl the bucket ACL: ACLPrivate, ACLPublicRead and ACLPublicReadWrite.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) SetBucketACL(bucketName string, bucketACL ACLType) error {
+ headers := map[string]string{HTTPHeaderOssACL: string(bucketACL)}
+ params := map[string]interface{}{}
+ resp, err := client.do("PUT", bucketName, params, headers, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// GetBucketACL gets the bucket ACL.
+//
+// bucketName the bucket name.
+//
+// GetBucketAclResponse the result object, and it's only valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketACL(bucketName string) (GetBucketACLResult, error) {
+ var out GetBucketACLResult
+ params := map[string]interface{}{}
+ params["acl"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// SetBucketLifecycle sets the bucket's lifecycle.
+//
+// For more information, checks out following link:
+// https://help.aliyun.com/document_detail/oss/user_guide/manage_object/object_lifecycle.html
+//
+// bucketName the bucket name.
+// rules the lifecycle rules. There're two kind of rules: absolute time expiration and relative time expiration in days and day/month/year respectively.
+// Check out sample/bucket_lifecycle.go for more details.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) SetBucketLifecycle(bucketName string, rules []LifecycleRule) error {
+ lxml := lifecycleXML{Rules: convLifecycleRule(rules)}
+ bs, err := xml.Marshal(lxml)
+ if err != nil {
+ return err
+ }
+ buffer := new(bytes.Buffer)
+ buffer.Write(bs)
+
+ contentType := http.DetectContentType(buffer.Bytes())
+ headers := map[string]string{}
+ headers[HTTPHeaderContentType] = contentType
+
+ params := map[string]interface{}{}
+ params["lifecycle"] = nil
+ resp, err := client.do("PUT", bucketName, params, headers, buffer)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// DeleteBucketLifecycle deletes the bucket's lifecycle.
+//
+//
+// bucketName the bucket name.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) DeleteBucketLifecycle(bucketName string) error {
+ params := map[string]interface{}{}
+ params["lifecycle"] = nil
+ resp, err := client.do("DELETE", bucketName, params, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusNoContent})
+}
+
+// GetBucketLifecycle gets the bucket's lifecycle settings.
+//
+// bucketName the bucket name.
+//
+// GetBucketLifecycleResponse the result object upon successful request. It's only valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketLifecycle(bucketName string) (GetBucketLifecycleResult, error) {
+ var out GetBucketLifecycleResult
+ params := map[string]interface{}{}
+ params["lifecycle"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// SetBucketReferer sets the bucket's referer whitelist and the flag if allowing empty referrer.
+//
+// To avoid stealing link on OSS data, OSS supports the HTTP referrer header. A whitelist referrer could be set either by API or web console, as well as
+// the allowing empty referrer flag. Note that this applies to requests from webbrowser only.
+// For example, for a bucket os-example and its referrer http://www.aliyun.com, all requests from this URL could access the bucket.
+// For more information, please check out this link :
+// https://help.aliyun.com/document_detail/oss/user_guide/security_management/referer.html
+//
+// bucketName the bucket name.
+// referers the referrer white list. A bucket could have a referrer list and each referrer supports one '*' and multiple '?' as wildcards.
+// The sample could be found in sample/bucket_referer.go
+// allowEmptyReferer the flag of allowing empty referrer. By default it's true.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) SetBucketReferer(bucketName string, referers []string, allowEmptyReferer bool) error {
+ rxml := RefererXML{}
+ rxml.AllowEmptyReferer = allowEmptyReferer
+ if referers == nil {
+ rxml.RefererList = append(rxml.RefererList, "")
+ } else {
+ for _, referer := range referers {
+ rxml.RefererList = append(rxml.RefererList, referer)
+ }
+ }
+
+ bs, err := xml.Marshal(rxml)
+ if err != nil {
+ return err
+ }
+ buffer := new(bytes.Buffer)
+ buffer.Write(bs)
+
+ contentType := http.DetectContentType(buffer.Bytes())
+ headers := map[string]string{}
+ headers[HTTPHeaderContentType] = contentType
+
+ params := map[string]interface{}{}
+ params["referer"] = nil
+ resp, err := client.do("PUT", bucketName, params, headers, buffer)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// GetBucketReferer gets the bucket's referrer white list.
+//
+// bucketName the bucket name.
+//
+// GetBucketRefererResponse the result object upon successful request. It's only valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketReferer(bucketName string) (GetBucketRefererResult, error) {
+ var out GetBucketRefererResult
+ params := map[string]interface{}{}
+ params["referer"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// SetBucketLogging sets the bucket logging settings.
+//
+// OSS could automatically store the access log. Only the bucket owner could enable the logging.
+// Once enabled, OSS would save all the access log into hourly log files in a specified bucket.
+// For more information, please check out https://help.aliyun.com/document_detail/oss/user_guide/security_management/logging.html
+//
+// bucketName bucket name to enable the log.
+// targetBucket the target bucket name to store the log files.
+// targetPrefix the log files' prefix.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) SetBucketLogging(bucketName, targetBucket, targetPrefix string,
+ isEnable bool) error {
+ var err error
+ var bs []byte
+ if isEnable {
+ lxml := LoggingXML{}
+ lxml.LoggingEnabled.TargetBucket = targetBucket
+ lxml.LoggingEnabled.TargetPrefix = targetPrefix
+ bs, err = xml.Marshal(lxml)
+ } else {
+ lxml := loggingXMLEmpty{}
+ bs, err = xml.Marshal(lxml)
+ }
+
+ if err != nil {
+ return err
+ }
+
+ buffer := new(bytes.Buffer)
+ buffer.Write(bs)
+
+ contentType := http.DetectContentType(buffer.Bytes())
+ headers := map[string]string{}
+ headers[HTTPHeaderContentType] = contentType
+
+ params := map[string]interface{}{}
+ params["logging"] = nil
+ resp, err := client.do("PUT", bucketName, params, headers, buffer)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// DeleteBucketLogging deletes the logging configuration to disable the logging on the bucket.
+//
+// bucketName the bucket name to disable the logging.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) DeleteBucketLogging(bucketName string) error {
+ params := map[string]interface{}{}
+ params["logging"] = nil
+ resp, err := client.do("DELETE", bucketName, params, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusNoContent})
+}
+
+// GetBucketLogging gets the bucket's logging settings
+//
+// bucketName the bucket name
+// GetBucketLoggingResponse the result object upon successful request. It's only valid when error is nil.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketLogging(bucketName string) (GetBucketLoggingResult, error) {
+ var out GetBucketLoggingResult
+ params := map[string]interface{}{}
+ params["logging"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// SetBucketWebsite sets the bucket's static website's index and error page.
+//
+// OSS supports static web site hosting for the bucket data. When the bucket is enabled with that, you can access the file in the bucket like the way to access a static website.
+// For more information, please check out: https://help.aliyun.com/document_detail/oss/user_guide/static_host_website.html
+//
+// bucketName the bucket name to enable static web site.
+// indexDocument index page.
+// errorDocument error page.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) SetBucketWebsite(bucketName, indexDocument, errorDocument string) error {
+ wxml := WebsiteXML{}
+ wxml.IndexDocument.Suffix = indexDocument
+ wxml.ErrorDocument.Key = errorDocument
+
+ bs, err := xml.Marshal(wxml)
+ if err != nil {
+ return err
+ }
+ buffer := new(bytes.Buffer)
+ buffer.Write(bs)
+
+ contentType := http.DetectContentType(buffer.Bytes())
+ headers := make(map[string]string)
+ headers[HTTPHeaderContentType] = contentType
+
+ params := map[string]interface{}{}
+ params["website"] = nil
+ resp, err := client.do("PUT", bucketName, params, headers, buffer)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// DeleteBucketWebsite deletes the bucket's static web site settings.
+//
+// bucketName the bucket name.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) DeleteBucketWebsite(bucketName string) error {
+ params := map[string]interface{}{}
+ params["website"] = nil
+ resp, err := client.do("DELETE", bucketName, params, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusNoContent})
+}
+
+// GetBucketWebsite gets the bucket's default page (index page) and the error page.
+//
+// bucketName the bucket name
+//
+// GetBucketWebsiteResponse the result object upon successful request. It's only valid when error is nil.
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketWebsite(bucketName string) (GetBucketWebsiteResult, error) {
+ var out GetBucketWebsiteResult
+ params := map[string]interface{}{}
+ params["website"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// SetBucketCORS sets the bucket's CORS rules
+//
+// For more information, please check out https://help.aliyun.com/document_detail/oss/user_guide/security_management/cors.html
+//
+// bucketName the bucket name
+// corsRules the CORS rules to set. The related sample code is in sample/bucket_cors.go.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) SetBucketCORS(bucketName string, corsRules []CORSRule) error {
+ corsxml := CORSXML{}
+ for _, v := range corsRules {
+ cr := CORSRule{}
+ cr.AllowedMethod = v.AllowedMethod
+ cr.AllowedOrigin = v.AllowedOrigin
+ cr.AllowedHeader = v.AllowedHeader
+ cr.ExposeHeader = v.ExposeHeader
+ cr.MaxAgeSeconds = v.MaxAgeSeconds
+ corsxml.CORSRules = append(corsxml.CORSRules, cr)
+ }
+
+ bs, err := xml.Marshal(corsxml)
+ if err != nil {
+ return err
+ }
+ buffer := new(bytes.Buffer)
+ buffer.Write(bs)
+
+ contentType := http.DetectContentType(buffer.Bytes())
+ headers := map[string]string{}
+ headers[HTTPHeaderContentType] = contentType
+
+ params := map[string]interface{}{}
+ params["cors"] = nil
+ resp, err := client.do("PUT", bucketName, params, headers, buffer)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusOK})
+}
+
+// DeleteBucketCORS deletes the bucket's static website settings.
+//
+// bucketName the bucket name.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) DeleteBucketCORS(bucketName string) error {
+ params := map[string]interface{}{}
+ params["cors"] = nil
+ resp, err := client.do("DELETE", bucketName, params, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusNoContent})
+}
+
+// GetBucketCORS gets the bucket's CORS settings.
+//
+// bucketName the bucket name.
+// GetBucketCORSResult the result object upon successful request. It's only valid when error is nil.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketCORS(bucketName string) (GetBucketCORSResult, error) {
+ var out GetBucketCORSResult
+ params := map[string]interface{}{}
+ params["cors"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// GetBucketInfo gets the bucket information.
+//
+// bucketName the bucket name.
+// GetBucketInfoResult the result object upon successful request. It's only valid when error is nil.
+//
+// error it's nil if no error, otherwise it's an error object.
+//
+func (client Client) GetBucketInfo(bucketName string) (GetBucketInfoResult, error) {
+ var out GetBucketInfoResult
+ params := map[string]interface{}{}
+ params["bucketInfo"] = nil
+ resp, err := client.do("GET", bucketName, params, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// UseCname sets the flag of using CName. By default it's false.
+//
+// isUseCname true: the endpoint has the CName, false: the endpoint does not have cname. Default is false.
+//
+func UseCname(isUseCname bool) ClientOption {
+ return func(client *Client) {
+ client.Config.IsCname = isUseCname
+ client.Conn.url.Init(client.Config.Endpoint, client.Config.IsCname, client.Config.IsUseProxy)
+ }
+}
+
+// Timeout sets the HTTP timeout in seconds.
+//
+// connectTimeoutSec HTTP timeout in seconds. Default is 10 seconds. 0 means infinite (not recommended)
+// readWriteTimeout HTTP read or write's timeout in seconds. Default is 20 seconds. 0 means infinite.
+//
+func Timeout(connectTimeoutSec, readWriteTimeout int64) ClientOption {
+ return func(client *Client) {
+ client.Config.HTTPTimeout.ConnectTimeout =
+ time.Second * time.Duration(connectTimeoutSec)
+ client.Config.HTTPTimeout.ReadWriteTimeout =
+ time.Second * time.Duration(readWriteTimeout)
+ client.Config.HTTPTimeout.HeaderTimeout =
+ time.Second * time.Duration(readWriteTimeout)
+ client.Config.HTTPTimeout.IdleConnTimeout =
+ time.Second * time.Duration(readWriteTimeout)
+ client.Config.HTTPTimeout.LongTimeout =
+ time.Second * time.Duration(readWriteTimeout*10)
+ }
+}
+
+// SecurityToken sets the temporary user's SecurityToken.
+//
+// token STS token
+//
+func SecurityToken(token string) ClientOption {
+ return func(client *Client) {
+ client.Config.SecurityToken = strings.TrimSpace(token)
+ }
+}
+
+// EnableMD5 enables MD5 validation.
+//
+// isEnableMD5 true: enable MD5 validation; false: disable MD5 validation.
+//
+func EnableMD5(isEnableMD5 bool) ClientOption {
+ return func(client *Client) {
+ client.Config.IsEnableMD5 = isEnableMD5
+ }
+}
+
+// MD5ThresholdCalcInMemory sets the memory usage threshold for computing the MD5, default is 16MB.
+//
+// threshold the memory threshold in bytes. When the uploaded content is more than 16MB, the temp file is used for computing the MD5.
+//
+func MD5ThresholdCalcInMemory(threshold int64) ClientOption {
+ return func(client *Client) {
+ client.Config.MD5Threshold = threshold
+ }
+}
+
+// EnableCRC enables the CRC checksum. Default is true.
+//
+// isEnableCRC true: enable CRC checksum; false: disable the CRC checksum.
+//
+func EnableCRC(isEnableCRC bool) ClientOption {
+ return func(client *Client) {
+ client.Config.IsEnableCRC = isEnableCRC
+ }
+}
+
+// UserAgent specifies UserAgent. The default is aliyun-sdk-go/1.2.0 (windows/-/amd64;go1.5.2).
+//
+// userAgent the user agent string.
+//
+func UserAgent(userAgent string) ClientOption {
+ return func(client *Client) {
+ client.Config.UserAgent = userAgent
+ }
+}
+
+// Proxy sets the proxy (optional). The default is not using proxy.
+//
+// proxyHost the proxy host in the format "host:port". For example, proxy.com:80 .
+//
+func Proxy(proxyHost string) ClientOption {
+ return func(client *Client) {
+ client.Config.IsUseProxy = true
+ client.Config.ProxyHost = proxyHost
+ client.Conn.url.Init(client.Config.Endpoint, client.Config.IsCname, client.Config.IsUseProxy)
+ }
+}
+
+// AuthProxy sets the proxy information with user name and password.
+//
+// proxyHost the proxy host in the format "host:port". For example, proxy.com:80 .
+// proxyUser the proxy user name.
+// proxyPassword the proxy password.
+//
+func AuthProxy(proxyHost, proxyUser, proxyPassword string) ClientOption {
+ return func(client *Client) {
+ client.Config.IsUseProxy = true
+ client.Config.ProxyHost = proxyHost
+ client.Config.IsAuthProxy = true
+ client.Config.ProxyUser = proxyUser
+ client.Config.ProxyPassword = proxyPassword
+ client.Conn.url.Init(client.Config.Endpoint, client.Config.IsCname, client.Config.IsUseProxy)
+ }
+}
+
+//
+// HTTPClient sets the http.Client in use to the one passed in
+//
+func HTTPClient(HTTPClient *http.Client) ClientOption {
+ return func(client *Client) {
+ client.HTTPClient = HTTPClient
+ }
+}
+
+// Private
+func (client Client) do(method, bucketName string, params map[string]interface{},
+ headers map[string]string, data io.Reader) (*Response, error) {
+ return client.Conn.Do(method, bucketName, "", params,
+ headers, data, 0, nil)
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/conf.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/conf.go
new file mode 100644
index 000000000..f5db93e24
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/conf.go
@@ -0,0 +1,77 @@
+package oss
+
+import (
+ "time"
+)
+
+// HTTPTimeout defines HTTP timeout.
+type HTTPTimeout struct {
+ ConnectTimeout time.Duration
+ ReadWriteTimeout time.Duration
+ HeaderTimeout time.Duration
+ LongTimeout time.Duration
+ IdleConnTimeout time.Duration
+}
+
+type HTTPMaxConns struct {
+ MaxIdleConns int
+ MaxIdleConnsPerHost int
+}
+
+// Config defines oss configuration
+type Config struct {
+ Endpoint string // OSS endpoint
+ AccessKeyID string // AccessId
+ AccessKeySecret string // AccessKey
+ RetryTimes uint // Retry count by default it's 5.
+ UserAgent string // SDK name/version/system information
+ IsDebug bool // Enable debug mode. Default is false.
+ Timeout uint // Timeout in seconds. By default it's 60.
+ SecurityToken string // STS Token
+ IsCname bool // If cname is in the endpoint.
+ HTTPTimeout HTTPTimeout // HTTP timeout
+ HTTPMaxConns HTTPMaxConns // Http max connections
+ IsUseProxy bool // Flag of using proxy.
+ ProxyHost string // Flag of using proxy host.
+ IsAuthProxy bool // Flag of needing authentication.
+ ProxyUser string // Proxy user
+ ProxyPassword string // Proxy password
+ IsEnableMD5 bool // Flag of enabling MD5 for upload.
+ MD5Threshold int64 // Memory footprint threshold for each MD5 computation (16MB is the default), in byte. When the data is more than that, temp file is used.
+ IsEnableCRC bool // Flag of enabling CRC for upload.
+}
+
+// getDefaultOssConfig gets the default configuration.
+func getDefaultOssConfig() *Config {
+ config := Config{}
+
+ config.Endpoint = ""
+ config.AccessKeyID = ""
+ config.AccessKeySecret = ""
+ config.RetryTimes = 5
+ config.IsDebug = false
+ config.UserAgent = userAgent()
+ config.Timeout = 60 // Seconds
+ config.SecurityToken = ""
+ config.IsCname = false
+
+ config.HTTPTimeout.ConnectTimeout = time.Second * 30 // 30s
+ config.HTTPTimeout.ReadWriteTimeout = time.Second * 60 // 60s
+ config.HTTPTimeout.HeaderTimeout = time.Second * 60 // 60s
+ config.HTTPTimeout.LongTimeout = time.Second * 300 // 300s
+ config.HTTPTimeout.IdleConnTimeout = time.Second * 50 // 50s
+ config.HTTPMaxConns.MaxIdleConns = 100
+ config.HTTPMaxConns.MaxIdleConnsPerHost = 100
+
+ config.IsUseProxy = false
+ config.ProxyHost = ""
+ config.IsAuthProxy = false
+ config.ProxyUser = ""
+ config.ProxyPassword = ""
+
+ config.MD5Threshold = 16 * 1024 * 1024 // 16MB
+ config.IsEnableMD5 = false
+ config.IsEnableCRC = true
+
+ return &config
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/conn.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/conn.go
new file mode 100644
index 000000000..74f768e5a
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/conn.go
@@ -0,0 +1,620 @@
+package oss
+
+import (
+ "bytes"
+ "crypto/md5"
+ "encoding/base64"
+ "encoding/json"
+ "encoding/xml"
+ "fmt"
+ "hash"
+ "io"
+ "io/ioutil"
+ "net"
+ "net/http"
+ "net/url"
+ "os"
+ "sort"
+ "strconv"
+ "strings"
+ "time"
+)
+
+// Conn defines OSS Conn
+type Conn struct {
+ config *Config
+ url *urlMaker
+ client *http.Client
+}
+
+var signKeyList = []string{"acl", "uploads", "location", "cors", "logging", "website", "referer", "lifecycle", "delete", "append", "tagging", "objectMeta", "uploadId", "partNumber", "security-token", "position", "img", "style", "styleName", "replication", "replicationProgress", "replicationLocation", "cname", "bucketInfo", "comp", "qos", "live", "status", "vod", "startTime", "endTime", "symlink", "x-oss-process", "response-content-type", "response-content-language", "response-expires", "response-cache-control", "response-content-disposition", "response-content-encoding", "udf", "udfName", "udfImage", "udfId", "udfImageDesc", "udfApplication", "comp", "udfApplicationLog", "restore", "callback", "callback-var"}
+
+// init initializes Conn
+func (conn *Conn) init(config *Config, urlMaker *urlMaker, client *http.Client) error {
+ if client == nil {
+ // New transport
+ transport := newTransport(conn, config)
+
+ // Proxy
+ if conn.config.IsUseProxy {
+ proxyURL, err := url.Parse(config.ProxyHost)
+ if err != nil {
+ return err
+ }
+ transport.Proxy = http.ProxyURL(proxyURL)
+ }
+ client = &http.Client{Transport: transport}
+ }
+
+ conn.config = config
+ conn.url = urlMaker
+ conn.client = client
+
+ return nil
+}
+
+// Do sends request and returns the response
+func (conn Conn) Do(method, bucketName, objectName string, params map[string]interface{}, headers map[string]string,
+ data io.Reader, initCRC uint64, listener ProgressListener) (*Response, error) {
+ urlParams := conn.getURLParams(params)
+ subResource := conn.getSubResource(params)
+ uri := conn.url.getURL(bucketName, objectName, urlParams)
+ resource := conn.url.getResource(bucketName, objectName, subResource)
+ return conn.doRequest(method, uri, resource, headers, data, initCRC, listener)
+}
+
+// DoURL sends the request with signed URL and returns the response result.
+func (conn Conn) DoURL(method HTTPMethod, signedURL string, headers map[string]string,
+ data io.Reader, initCRC uint64, listener ProgressListener) (*Response, error) {
+ // Get URI from signedURL
+ uri, err := url.ParseRequestURI(signedURL)
+ if err != nil {
+ return nil, err
+ }
+
+ m := strings.ToUpper(string(method))
+ req := &http.Request{
+ Method: m,
+ URL: uri,
+ Proto: "HTTP/1.1",
+ ProtoMajor: 1,
+ ProtoMinor: 1,
+ Header: make(http.Header),
+ Host: uri.Host,
+ }
+
+ tracker := &readerTracker{completedBytes: 0}
+ fd, crc := conn.handleBody(req, data, initCRC, listener, tracker)
+ if fd != nil {
+ defer func() {
+ fd.Close()
+ os.Remove(fd.Name())
+ }()
+ }
+
+ if conn.config.IsAuthProxy {
+ auth := conn.config.ProxyUser + ":" + conn.config.ProxyPassword
+ basic := "Basic " + base64.StdEncoding.EncodeToString([]byte(auth))
+ req.Header.Set("Proxy-Authorization", basic)
+ }
+
+ req.Header.Set(HTTPHeaderHost, conn.config.Endpoint)
+ req.Header.Set(HTTPHeaderUserAgent, conn.config.UserAgent)
+
+ if headers != nil {
+ for k, v := range headers {
+ req.Header.Set(k, v)
+ }
+ }
+
+ // Transfer started
+ event := newProgressEvent(TransferStartedEvent, 0, req.ContentLength)
+ publishProgress(listener, event)
+
+ resp, err := conn.client.Do(req)
+ if err != nil {
+ // Transfer failed
+ event = newProgressEvent(TransferFailedEvent, tracker.completedBytes, req.ContentLength)
+ publishProgress(listener, event)
+ return nil, err
+ }
+
+ // Transfer completed
+ event = newProgressEvent(TransferCompletedEvent, tracker.completedBytes, req.ContentLength)
+ publishProgress(listener, event)
+
+ return conn.handleResponse(resp, crc)
+}
+
+func (conn Conn) getURLParams(params map[string]interface{}) string {
+ // Sort
+ keys := make([]string, 0, len(params))
+ for k := range params {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+
+ // Serialize
+ var buf bytes.Buffer
+ for _, k := range keys {
+ if buf.Len() > 0 {
+ buf.WriteByte('&')
+ }
+ buf.WriteString(url.QueryEscape(k))
+ if params[k] != nil {
+ buf.WriteString("=" + url.QueryEscape(params[k].(string)))
+ }
+ }
+
+ return buf.String()
+}
+
+func (conn Conn) getSubResource(params map[string]interface{}) string {
+ // Sort
+ keys := make([]string, 0, len(params))
+ for k := range params {
+ if conn.isParamSign(k) {
+ keys = append(keys, k)
+ }
+ }
+ sort.Strings(keys)
+
+ // Serialize
+ var buf bytes.Buffer
+ for _, k := range keys {
+ if buf.Len() > 0 {
+ buf.WriteByte('&')
+ }
+ buf.WriteString(k)
+ if params[k] != nil {
+ buf.WriteString("=" + params[k].(string))
+ }
+ }
+
+ return buf.String()
+}
+
+func (conn Conn) isParamSign(paramKey string) bool {
+ for _, k := range signKeyList {
+ if paramKey == k {
+ return true
+ }
+ }
+ return false
+}
+
+func (conn Conn) doRequest(method string, uri *url.URL, canonicalizedResource string, headers map[string]string,
+ data io.Reader, initCRC uint64, listener ProgressListener) (*Response, error) {
+ method = strings.ToUpper(method)
+ req := &http.Request{
+ Method: method,
+ URL: uri,
+ Proto: "HTTP/1.1",
+ ProtoMajor: 1,
+ ProtoMinor: 1,
+ Header: make(http.Header),
+ Host: uri.Host,
+ }
+
+ tracker := &readerTracker{completedBytes: 0}
+ fd, crc := conn.handleBody(req, data, initCRC, listener, tracker)
+ if fd != nil {
+ defer func() {
+ fd.Close()
+ os.Remove(fd.Name())
+ }()
+ }
+
+ if conn.config.IsAuthProxy {
+ auth := conn.config.ProxyUser + ":" + conn.config.ProxyPassword
+ basic := "Basic " + base64.StdEncoding.EncodeToString([]byte(auth))
+ req.Header.Set("Proxy-Authorization", basic)
+ }
+
+ date := time.Now().UTC().Format(http.TimeFormat)
+ req.Header.Set(HTTPHeaderDate, date)
+ req.Header.Set(HTTPHeaderHost, conn.config.Endpoint)
+ req.Header.Set(HTTPHeaderUserAgent, conn.config.UserAgent)
+ if conn.config.SecurityToken != "" {
+ req.Header.Set(HTTPHeaderOssSecurityToken, conn.config.SecurityToken)
+ }
+
+ if headers != nil {
+ for k, v := range headers {
+ req.Header.Set(k, v)
+ }
+ }
+
+ conn.signHeader(req, canonicalizedResource)
+
+ // Transfer started
+ event := newProgressEvent(TransferStartedEvent, 0, req.ContentLength)
+ publishProgress(listener, event)
+
+ resp, err := conn.client.Do(req)
+ if err != nil {
+ // Transfer failed
+ event = newProgressEvent(TransferFailedEvent, tracker.completedBytes, req.ContentLength)
+ publishProgress(listener, event)
+ return nil, err
+ }
+
+ // Transfer completed
+ event = newProgressEvent(TransferCompletedEvent, tracker.completedBytes, req.ContentLength)
+ publishProgress(listener, event)
+
+ return conn.handleResponse(resp, crc)
+}
+
+func (conn Conn) signURL(method HTTPMethod, bucketName, objectName string, expiration int64, params map[string]interface{}, headers map[string]string) string {
+ if conn.config.SecurityToken != "" {
+ params[HTTPParamSecurityToken] = conn.config.SecurityToken
+ }
+ subResource := conn.getSubResource(params)
+ canonicalizedResource := conn.url.getResource(bucketName, objectName, subResource)
+
+ m := strings.ToUpper(string(method))
+ req := &http.Request{
+ Method: m,
+ Header: make(http.Header),
+ }
+
+ if conn.config.IsAuthProxy {
+ auth := conn.config.ProxyUser + ":" + conn.config.ProxyPassword
+ basic := "Basic " + base64.StdEncoding.EncodeToString([]byte(auth))
+ req.Header.Set("Proxy-Authorization", basic)
+ }
+
+ req.Header.Set(HTTPHeaderDate, strconv.FormatInt(expiration, 10))
+ req.Header.Set(HTTPHeaderHost, conn.config.Endpoint)
+ req.Header.Set(HTTPHeaderUserAgent, conn.config.UserAgent)
+
+ if headers != nil {
+ for k, v := range headers {
+ req.Header.Set(k, v)
+ }
+ }
+
+ signedStr := conn.getSignedStr(req, canonicalizedResource)
+
+ params[HTTPParamExpires] = strconv.FormatInt(expiration, 10)
+ params[HTTPParamAccessKeyID] = conn.config.AccessKeyID
+ params[HTTPParamSignature] = signedStr
+
+ urlParams := conn.getURLParams(params)
+ return conn.url.getSignURL(bucketName, objectName, urlParams)
+}
+
+// handleBody handles request body
+func (conn Conn) handleBody(req *http.Request, body io.Reader, initCRC uint64,
+ listener ProgressListener, tracker *readerTracker) (*os.File, hash.Hash64) {
+ var file *os.File
+ var crc hash.Hash64
+ reader := body
+
+ // Length
+ switch v := body.(type) {
+ case *bytes.Buffer:
+ req.ContentLength = int64(v.Len())
+ case *bytes.Reader:
+ req.ContentLength = int64(v.Len())
+ case *strings.Reader:
+ req.ContentLength = int64(v.Len())
+ case *os.File:
+ req.ContentLength = tryGetFileSize(v)
+ case *io.LimitedReader:
+ req.ContentLength = int64(v.N)
+ }
+ req.Header.Set(HTTPHeaderContentLength, strconv.FormatInt(req.ContentLength, 10))
+
+ // MD5
+ if body != nil && conn.config.IsEnableMD5 && req.Header.Get(HTTPHeaderContentMD5) == "" {
+ md5 := ""
+ reader, md5, file, _ = calcMD5(body, req.ContentLength, conn.config.MD5Threshold)
+ req.Header.Set(HTTPHeaderContentMD5, md5)
+ }
+
+ // CRC
+ if reader != nil && conn.config.IsEnableCRC {
+ crc = NewCRC(crcTable(), initCRC)
+ reader = TeeReader(reader, crc, req.ContentLength, listener, tracker)
+ }
+
+ // HTTP body
+ rc, ok := reader.(io.ReadCloser)
+ if !ok && reader != nil {
+ rc = ioutil.NopCloser(reader)
+ }
+ req.Body = rc
+
+ return file, crc
+}
+
+func tryGetFileSize(f *os.File) int64 {
+ fInfo, _ := f.Stat()
+ return fInfo.Size()
+}
+
+// handleResponse handles response
+func (conn Conn) handleResponse(resp *http.Response, crc hash.Hash64) (*Response, error) {
+ var cliCRC uint64
+ var srvCRC uint64
+
+ statusCode := resp.StatusCode
+ if statusCode >= 400 && statusCode <= 505 {
+ // 4xx and 5xx indicate that the operation has error occurred
+ var respBody []byte
+ respBody, err := readResponseBody(resp)
+ if err != nil {
+ return nil, err
+ }
+
+ if len(respBody) == 0 {
+ err = ServiceError{
+ StatusCode: statusCode,
+ RequestID: resp.Header.Get(HTTPHeaderOssRequestID),
+ }
+ } else {
+ // Response contains storage service error object, unmarshal
+ srvErr, errIn := serviceErrFromXML(respBody, resp.StatusCode,
+ resp.Header.Get(HTTPHeaderOssRequestID))
+ if errIn != nil { // error unmarshaling the error response
+ err = fmt.Errorf("oss: service returned invalid response body, status = %s, RequestId = %s", resp.Status, resp.Header.Get(HTTPHeaderOssRequestID))
+ } else {
+ err = srvErr
+ }
+ }
+
+ return &Response{
+ StatusCode: resp.StatusCode,
+ Headers: resp.Header,
+ Body: ioutil.NopCloser(bytes.NewReader(respBody)), // restore the body
+ }, err
+ } else if statusCode >= 300 && statusCode <= 307 {
+ // OSS use 3xx, but response has no body
+ err := fmt.Errorf("oss: service returned %d,%s", resp.StatusCode, resp.Status)
+ return &Response{
+ StatusCode: resp.StatusCode,
+ Headers: resp.Header,
+ Body: resp.Body,
+ }, err
+ }
+
+ if conn.config.IsEnableCRC && crc != nil {
+ cliCRC = crc.Sum64()
+ }
+ srvCRC, _ = strconv.ParseUint(resp.Header.Get(HTTPHeaderOssCRC64), 10, 64)
+
+ // 2xx, successful
+ return &Response{
+ StatusCode: resp.StatusCode,
+ Headers: resp.Header,
+ Body: resp.Body,
+ ClientCRC: cliCRC,
+ ServerCRC: srvCRC,
+ }, nil
+}
+
+func calcMD5(body io.Reader, contentLen, md5Threshold int64) (reader io.Reader, b64 string, tempFile *os.File, err error) {
+ if contentLen == 0 || contentLen > md5Threshold {
+ // Huge body, use temporary file
+ tempFile, err = ioutil.TempFile(os.TempDir(), TempFilePrefix)
+ if tempFile != nil {
+ io.Copy(tempFile, body)
+ tempFile.Seek(0, os.SEEK_SET)
+ md5 := md5.New()
+ io.Copy(md5, tempFile)
+ sum := md5.Sum(nil)
+ b64 = base64.StdEncoding.EncodeToString(sum[:])
+ tempFile.Seek(0, os.SEEK_SET)
+ reader = tempFile
+ }
+ } else {
+ // Small body, use memory
+ buf, _ := ioutil.ReadAll(body)
+ sum := md5.Sum(buf)
+ b64 = base64.StdEncoding.EncodeToString(sum[:])
+ reader = bytes.NewReader(buf)
+ }
+ return
+}
+
+func readResponseBody(resp *http.Response) ([]byte, error) {
+ defer resp.Body.Close()
+ out, err := ioutil.ReadAll(resp.Body)
+ if err == io.EOF {
+ err = nil
+ }
+ return out, err
+}
+
+func serviceErrFromXML(body []byte, statusCode int, requestID string) (ServiceError, error) {
+ var storageErr ServiceError
+
+ if err := xml.Unmarshal(body, &storageErr); err != nil {
+ return storageErr, err
+ }
+
+ storageErr.StatusCode = statusCode
+ storageErr.RequestID = requestID
+ storageErr.RawMessage = string(body)
+ return storageErr, nil
+}
+
+func xmlUnmarshal(body io.Reader, v interface{}) error {
+ data, err := ioutil.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ return xml.Unmarshal(data, v)
+}
+
+func jsonUnmarshal(body io.Reader, v interface{}) error {
+ data, err := ioutil.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ return json.Unmarshal(data, v)
+}
+
+// timeoutConn handles HTTP timeout
+type timeoutConn struct {
+ conn net.Conn
+ timeout time.Duration
+ longTimeout time.Duration
+}
+
+func newTimeoutConn(conn net.Conn, timeout time.Duration, longTimeout time.Duration) *timeoutConn {
+ conn.SetReadDeadline(time.Now().Add(longTimeout))
+ return &timeoutConn{
+ conn: conn,
+ timeout: timeout,
+ longTimeout: longTimeout,
+ }
+}
+
+func (c *timeoutConn) Read(b []byte) (n int, err error) {
+ c.SetReadDeadline(time.Now().Add(c.timeout))
+ n, err = c.conn.Read(b)
+ c.SetReadDeadline(time.Now().Add(c.longTimeout))
+ return n, err
+}
+
+func (c *timeoutConn) Write(b []byte) (n int, err error) {
+ c.SetWriteDeadline(time.Now().Add(c.timeout))
+ n, err = c.conn.Write(b)
+ c.SetReadDeadline(time.Now().Add(c.longTimeout))
+ return n, err
+}
+
+func (c *timeoutConn) Close() error {
+ return c.conn.Close()
+}
+
+func (c *timeoutConn) LocalAddr() net.Addr {
+ return c.conn.LocalAddr()
+}
+
+func (c *timeoutConn) RemoteAddr() net.Addr {
+ return c.conn.RemoteAddr()
+}
+
+func (c *timeoutConn) SetDeadline(t time.Time) error {
+ return c.conn.SetDeadline(t)
+}
+
+func (c *timeoutConn) SetReadDeadline(t time.Time) error {
+ return c.conn.SetReadDeadline(t)
+}
+
+func (c *timeoutConn) SetWriteDeadline(t time.Time) error {
+ return c.conn.SetWriteDeadline(t)
+}
+
+// UrlMaker builds URL and resource
+const (
+ urlTypeCname = 1
+ urlTypeIP = 2
+ urlTypeAliyun = 3
+)
+
+type urlMaker struct {
+ Scheme string // HTTP or HTTPS
+ NetLoc string // Host or IP
+ Type int // 1 CNAME, 2 IP, 3 ALIYUN
+ IsProxy bool // Proxy
+}
+
+// Init parses endpoint
+func (um *urlMaker) Init(endpoint string, isCname bool, isProxy bool) {
+ if strings.HasPrefix(endpoint, "http://") {
+ um.Scheme = "http"
+ um.NetLoc = endpoint[len("http://"):]
+ } else if strings.HasPrefix(endpoint, "https://") {
+ um.Scheme = "https"
+ um.NetLoc = endpoint[len("https://"):]
+ } else {
+ um.Scheme = "http"
+ um.NetLoc = endpoint
+ }
+
+ host, _, err := net.SplitHostPort(um.NetLoc)
+ if err != nil {
+ host = um.NetLoc
+ if host[0] == '[' && host[len(host)-1] == ']' {
+ host = host[1 : len(host)-1]
+ }
+ }
+
+ ip := net.ParseIP(host)
+ if ip != nil {
+ um.Type = urlTypeIP
+ } else if isCname {
+ um.Type = urlTypeCname
+ } else {
+ um.Type = urlTypeAliyun
+ }
+ um.IsProxy = isProxy
+}
+
+// getURL gets URL
+func (um urlMaker) getURL(bucket, object, params string) *url.URL {
+ host, path := um.buildURL(bucket, object)
+ addr := ""
+ if params == "" {
+ addr = fmt.Sprintf("%s://%s%s", um.Scheme, host, path)
+ } else {
+ addr = fmt.Sprintf("%s://%s%s?%s", um.Scheme, host, path, params)
+ }
+ uri, _ := url.ParseRequestURI(addr)
+ return uri
+}
+
+// getSignURL gets sign URL
+func (um urlMaker) getSignURL(bucket, object, params string) string {
+ host, path := um.buildURL(bucket, object)
+ return fmt.Sprintf("%s://%s%s?%s", um.Scheme, host, path, params)
+}
+
+// buildURL builds URL
+func (um urlMaker) buildURL(bucket, object string) (string, string) {
+ var host = ""
+ var path = ""
+
+ object = url.QueryEscape(object)
+ object = strings.Replace(object, "+", "%20", -1)
+
+ if um.Type == urlTypeCname {
+ host = um.NetLoc
+ path = "/" + object
+ } else if um.Type == urlTypeIP {
+ if bucket == "" {
+ host = um.NetLoc
+ path = "/"
+ } else {
+ host = um.NetLoc
+ path = fmt.Sprintf("/%s/%s", bucket, object)
+ }
+ } else {
+ if bucket == "" {
+ host = um.NetLoc
+ path = "/"
+ } else {
+ host = bucket + "." + um.NetLoc
+ path = "/" + object
+ }
+ }
+
+ return host, path
+}
+
+// getResource gets canonicalized resource
+func (um urlMaker) getResource(bucketName, objectName, subResource string) string {
+ if subResource != "" {
+ subResource = "?" + subResource
+ }
+ if bucketName == "" {
+ return fmt.Sprintf("/%s%s", bucketName, subResource)
+ }
+ return fmt.Sprintf("/%s/%s%s", bucketName, objectName, subResource)
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/const.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/const.go
new file mode 100644
index 000000000..b5ee30bdf
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/const.go
@@ -0,0 +1,145 @@
+package oss
+
+import "os"
+
+// ACLType bucket/object ACL
+type ACLType string
+
+const (
+ // ACLPrivate definition : private read and write
+ ACLPrivate ACLType = "private"
+
+ // ACLPublicRead definition : public read and private write
+ ACLPublicRead ACLType = "public-read"
+
+ // ACLPublicReadWrite definition : public read and public write
+ ACLPublicReadWrite ACLType = "public-read-write"
+
+ // ACLDefault Object. It's only applicable for object.
+ ACLDefault ACLType = "default"
+)
+
+// MetadataDirectiveType specifying whether use the metadata of source object when copying object.
+type MetadataDirectiveType string
+
+const (
+ // MetaCopy the target object's metadata is copied from the source one
+ MetaCopy MetadataDirectiveType = "COPY"
+
+ // MetaReplace the target object's metadata is created as part of the copy request (not same as the source one)
+ MetaReplace MetadataDirectiveType = "REPLACE"
+)
+
+// StorageClassType bucket storage type
+type StorageClassType string
+
+const (
+ // StorageStandard standard
+ StorageStandard StorageClassType = "Standard"
+
+ // StorageIA infrequent access
+ StorageIA StorageClassType = "IA"
+
+ // StorageArchive archive
+ StorageArchive StorageClassType = "Archive"
+)
+
+// PayerType the type of request payer
+type PayerType string
+
+const (
+ // Requester the requester who send the request
+ Requester PayerType = "requester"
+)
+
+// HTTPMethod HTTP request method
+type HTTPMethod string
+
+const (
+ // HTTPGet HTTP GET
+ HTTPGet HTTPMethod = "GET"
+
+ // HTTPPut HTTP PUT
+ HTTPPut HTTPMethod = "PUT"
+
+ // HTTPHead HTTP HEAD
+ HTTPHead HTTPMethod = "HEAD"
+
+ // HTTPPost HTTP POST
+ HTTPPost HTTPMethod = "POST"
+
+ // HTTPDelete HTTP DELETE
+ HTTPDelete HTTPMethod = "DELETE"
+)
+
+// HTTP headers
+const (
+ HTTPHeaderAcceptEncoding string = "Accept-Encoding"
+ HTTPHeaderAuthorization = "Authorization"
+ HTTPHeaderCacheControl = "Cache-Control"
+ HTTPHeaderContentDisposition = "Content-Disposition"
+ HTTPHeaderContentEncoding = "Content-Encoding"
+ HTTPHeaderContentLength = "Content-Length"
+ HTTPHeaderContentMD5 = "Content-MD5"
+ HTTPHeaderContentType = "Content-Type"
+ HTTPHeaderContentLanguage = "Content-Language"
+ HTTPHeaderDate = "Date"
+ HTTPHeaderEtag = "ETag"
+ HTTPHeaderExpires = "Expires"
+ HTTPHeaderHost = "Host"
+ HTTPHeaderLastModified = "Last-Modified"
+ HTTPHeaderRange = "Range"
+ HTTPHeaderLocation = "Location"
+ HTTPHeaderOrigin = "Origin"
+ HTTPHeaderServer = "Server"
+ HTTPHeaderUserAgent = "User-Agent"
+ HTTPHeaderIfModifiedSince = "If-Modified-Since"
+ HTTPHeaderIfUnmodifiedSince = "If-Unmodified-Since"
+ HTTPHeaderIfMatch = "If-Match"
+ HTTPHeaderIfNoneMatch = "If-None-Match"
+
+ HTTPHeaderOssACL = "X-Oss-Acl"
+ HTTPHeaderOssMetaPrefix = "X-Oss-Meta-"
+ HTTPHeaderOssObjectACL = "X-Oss-Object-Acl"
+ HTTPHeaderOssSecurityToken = "X-Oss-Security-Token"
+ HTTPHeaderOssServerSideEncryption = "X-Oss-Server-Side-Encryption"
+ HTTPHeaderOssServerSideEncryptionKeyID = "X-Oss-Server-Side-Encryption-Key-Id"
+ HTTPHeaderOssCopySource = "X-Oss-Copy-Source"
+ HTTPHeaderOssCopySourceRange = "X-Oss-Copy-Source-Range"
+ HTTPHeaderOssCopySourceIfMatch = "X-Oss-Copy-Source-If-Match"
+ HTTPHeaderOssCopySourceIfNoneMatch = "X-Oss-Copy-Source-If-None-Match"
+ HTTPHeaderOssCopySourceIfModifiedSince = "X-Oss-Copy-Source-If-Modified-Since"
+ HTTPHeaderOssCopySourceIfUnmodifiedSince = "X-Oss-Copy-Source-If-Unmodified-Since"
+ HTTPHeaderOssMetadataDirective = "X-Oss-Metadata-Directive"
+ HTTPHeaderOssNextAppendPosition = "X-Oss-Next-Append-Position"
+ HTTPHeaderOssRequestID = "X-Oss-Request-Id"
+ HTTPHeaderOssCRC64 = "X-Oss-Hash-Crc64ecma"
+ HTTPHeaderOssSymlinkTarget = "X-Oss-Symlink-Target"
+ HTTPHeaderOssStorageClass = "X-Oss-Storage-Class"
+ HTTPHeaderOssCallback = "X-Oss-Callback"
+ HTTPHeaderOssCallbackVar = "X-Oss-Callback-Var"
+ HTTPHeaderOSSRequester = "X-Oss-Request-Payer"
+)
+
+// HTTP Param
+const (
+ HTTPParamExpires = "Expires"
+ HTTPParamAccessKeyID = "OSSAccessKeyId"
+ HTTPParamSignature = "Signature"
+ HTTPParamSecurityToken = "security-token"
+)
+
+// Other constants
+const (
+ MaxPartSize = 5 * 1024 * 1024 * 1024 // Max part size, 5GB
+ MinPartSize = 100 * 1024 // Min part size, 100KB
+
+ FilePermMode = os.FileMode(0664) // Default file permission
+
+ TempFilePrefix = "oss-go-temp-" // Temp file prefix
+ TempFileSuffix = ".temp" // Temp file suffix
+
+ CheckpointFileSuffix = ".cp" // Checkpoint file suffix
+
+ Version = "1.9.2" // Go SDK version
+)
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/crc.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/crc.go
new file mode 100644
index 000000000..c96694f28
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/crc.go
@@ -0,0 +1,123 @@
+package oss
+
+import (
+ "hash"
+ "hash/crc64"
+)
+
+// digest represents the partial evaluation of a checksum.
+type digest struct {
+ crc uint64
+ tab *crc64.Table
+}
+
+// NewCRC creates a new hash.Hash64 computing the CRC64 checksum
+// using the polynomial represented by the Table.
+func NewCRC(tab *crc64.Table, init uint64) hash.Hash64 { return &digest{init, tab} }
+
+// Size returns the number of bytes sum will return.
+func (d *digest) Size() int { return crc64.Size }
+
+// BlockSize returns the hash's underlying block size.
+// The Write method must be able to accept any amount
+// of data, but it may operate more efficiently if all writes
+// are a multiple of the block size.
+func (d *digest) BlockSize() int { return 1 }
+
+// Reset resets the hash to its initial state.
+func (d *digest) Reset() { d.crc = 0 }
+
+// Write (via the embedded io.Writer interface) adds more data to the running hash.
+// It never returns an error.
+func (d *digest) Write(p []byte) (n int, err error) {
+ d.crc = crc64.Update(d.crc, d.tab, p)
+ return len(p), nil
+}
+
+// Sum64 returns CRC64 value.
+func (d *digest) Sum64() uint64 { return d.crc }
+
+// Sum returns hash value.
+func (d *digest) Sum(in []byte) []byte {
+ s := d.Sum64()
+ return append(in, byte(s>>56), byte(s>>48), byte(s>>40), byte(s>>32), byte(s>>24), byte(s>>16), byte(s>>8), byte(s))
+}
+
+// gf2Dim dimension of GF(2) vectors (length of CRC)
+const gf2Dim int = 64
+
+func gf2MatrixTimes(mat []uint64, vec uint64) uint64 {
+ var sum uint64
+ for i := 0; vec != 0; i++ {
+ if vec&1 != 0 {
+ sum ^= mat[i]
+ }
+
+ vec >>= 1
+ }
+ return sum
+}
+
+func gf2MatrixSquare(square []uint64, mat []uint64) {
+ for n := 0; n < gf2Dim; n++ {
+ square[n] = gf2MatrixTimes(mat, mat[n])
+ }
+}
+
+// CRC64Combine combines CRC64
+func CRC64Combine(crc1 uint64, crc2 uint64, len2 uint64) uint64 {
+ var even [gf2Dim]uint64 // Even-power-of-two zeros operator
+ var odd [gf2Dim]uint64 // Odd-power-of-two zeros operator
+
+ // Degenerate case
+ if len2 == 0 {
+ return crc1
+ }
+
+ // Put operator for one zero bit in odd
+ odd[0] = crc64.ECMA // CRC64 polynomial
+ var row uint64 = 1
+ for n := 1; n < gf2Dim; n++ {
+ odd[n] = row
+ row <<= 1
+ }
+
+ // Put operator for two zero bits in even
+ gf2MatrixSquare(even[:], odd[:])
+
+ // Put operator for four zero bits in odd
+ gf2MatrixSquare(odd[:], even[:])
+
+ // Apply len2 zeros to crc1, first square will put the operator for one zero byte, eight zero bits, in even
+ for {
+ // Apply zeros operator for this bit of len2
+ gf2MatrixSquare(even[:], odd[:])
+
+ if len2&1 != 0 {
+ crc1 = gf2MatrixTimes(even[:], crc1)
+ }
+
+ len2 >>= 1
+
+ // If no more bits set, then done
+ if len2 == 0 {
+ break
+ }
+
+ // Another iteration of the loop with odd and even swapped
+ gf2MatrixSquare(odd[:], even[:])
+ if len2&1 != 0 {
+ crc1 = gf2MatrixTimes(odd[:], crc1)
+ }
+ len2 >>= 1
+
+ // If no more bits set, then done
+ if len2 == 0 {
+ break
+ }
+ }
+
+ // Return combined CRC
+ crc1 ^= crc2
+ return crc1
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/download.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/download.go
new file mode 100644
index 000000000..f0f0857bd
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/download.go
@@ -0,0 +1,568 @@
+package oss
+
+import (
+ "crypto/md5"
+ "encoding/base64"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "hash"
+ "hash/crc64"
+ "io"
+ "io/ioutil"
+ "net/http"
+ "os"
+ "path/filepath"
+ "strconv"
+)
+
+// DownloadFile downloads files with multipart download.
+//
+// objectKey the object key.
+// filePath the local file to download from objectKey in OSS.
+// partSize the part size in bytes.
+// options object's constraints, check out GetObject for the reference.
+//
+// error it's nil when the call succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) DownloadFile(objectKey, filePath string, partSize int64, options ...Option) error {
+ if partSize < 1 {
+ return errors.New("oss: part size smaller than 1")
+ }
+
+ uRange, err := getRangeConfig(options)
+ if err != nil {
+ return err
+ }
+
+ cpConf := getCpConfig(options)
+ routines := getRoutines(options)
+
+ if cpConf != nil && cpConf.IsEnable {
+ cpFilePath := getDownloadCpFilePath(cpConf, bucket.BucketName, objectKey, filePath)
+ if cpFilePath != "" {
+ return bucket.downloadFileWithCp(objectKey, filePath, partSize, options, cpFilePath, routines, uRange)
+ }
+ }
+
+ return bucket.downloadFile(objectKey, filePath, partSize, options, routines, uRange)
+}
+
+func getDownloadCpFilePath(cpConf *cpConfig, srcBucket, srcObject, destFile string) string {
+ if cpConf.FilePath == "" && cpConf.DirPath != "" {
+ src := fmt.Sprintf("oss://%v/%v", srcBucket, srcObject)
+ absPath, _ := filepath.Abs(destFile)
+ cpFileName := getCpFileName(src, absPath)
+ cpConf.FilePath = cpConf.DirPath + string(os.PathSeparator) + cpFileName
+ }
+ return cpConf.FilePath
+}
+
+// getRangeConfig gets the download range from the options.
+func getRangeConfig(options []Option) (*unpackedRange, error) {
+ rangeOpt, err := findOption(options, HTTPHeaderRange, nil)
+ if err != nil || rangeOpt == nil {
+ return nil, err
+ }
+ return parseRange(rangeOpt.(string))
+}
+
+// ----- concurrent download without checkpoint -----
+
+// downloadWorkerArg is download worker's parameters
+type downloadWorkerArg struct {
+ bucket *Bucket
+ key string
+ filePath string
+ options []Option
+ hook downloadPartHook
+ enableCRC bool
+}
+
+// downloadPartHook is hook for test
+type downloadPartHook func(part downloadPart) error
+
+var downloadPartHooker downloadPartHook = defaultDownloadPartHook
+
+func defaultDownloadPartHook(part downloadPart) error {
+ return nil
+}
+
+// defaultDownloadProgressListener defines default ProgressListener, shields the ProgressListener in options of GetObject.
+type defaultDownloadProgressListener struct {
+}
+
+// ProgressChanged no-ops
+func (listener *defaultDownloadProgressListener) ProgressChanged(event *ProgressEvent) {
+}
+
+// downloadWorker
+func downloadWorker(id int, arg downloadWorkerArg, jobs <-chan downloadPart, results chan<- downloadPart, failed chan<- error, die <-chan bool) {
+ for part := range jobs {
+ if err := arg.hook(part); err != nil {
+ failed <- err
+ break
+ }
+
+ // Resolve options
+ r := Range(part.Start, part.End)
+ p := Progress(&defaultDownloadProgressListener{})
+ opts := make([]Option, len(arg.options)+2)
+ // Append orderly, can not be reversed!
+ opts = append(opts, arg.options...)
+ opts = append(opts, r, p)
+
+ rd, err := arg.bucket.GetObject(arg.key, opts...)
+ if err != nil {
+ failed <- err
+ break
+ }
+ defer rd.Close()
+
+ var crcCalc hash.Hash64
+ if arg.enableCRC {
+ crcCalc = crc64.New(crcTable())
+ contentLen := part.End - part.Start + 1
+ rd = ioutil.NopCloser(TeeReader(rd, crcCalc, contentLen, nil, nil))
+ }
+ defer rd.Close()
+
+ select {
+ case <-die:
+ return
+ default:
+ }
+
+ fd, err := os.OpenFile(arg.filePath, os.O_WRONLY, FilePermMode)
+ if err != nil {
+ failed <- err
+ break
+ }
+
+ _, err = fd.Seek(part.Start-part.Offset, os.SEEK_SET)
+ if err != nil {
+ fd.Close()
+ failed <- err
+ break
+ }
+
+ _, err = io.Copy(fd, rd)
+ if err != nil {
+ fd.Close()
+ failed <- err
+ break
+ }
+
+ if arg.enableCRC {
+ part.CRC64 = crcCalc.Sum64()
+ }
+
+ fd.Close()
+ results <- part
+ }
+}
+
+// downloadScheduler
+func downloadScheduler(jobs chan downloadPart, parts []downloadPart) {
+ for _, part := range parts {
+ jobs <- part
+ }
+ close(jobs)
+}
+
+// downloadPart defines download part
+type downloadPart struct {
+ Index int // Part number, starting from 0
+ Start int64 // Start index
+ End int64 // End index
+ Offset int64 // Offset
+ CRC64 uint64 // CRC check value of part
+}
+
+// getDownloadParts gets download parts
+func getDownloadParts(objectSize, partSize int64, uRange *unpackedRange) []downloadPart {
+ parts := []downloadPart{}
+ part := downloadPart{}
+ i := 0
+ start, end := adjustRange(uRange, objectSize)
+ for offset := start; offset < end; offset += partSize {
+ part.Index = i
+ part.Start = offset
+ part.End = GetPartEnd(offset, end, partSize)
+ part.Offset = start
+ part.CRC64 = 0
+ parts = append(parts, part)
+ i++
+ }
+ return parts
+}
+
+// getObjectBytes gets object bytes length
+func getObjectBytes(parts []downloadPart) int64 {
+ var ob int64
+ for _, part := range parts {
+ ob += (part.End - part.Start + 1)
+ }
+ return ob
+}
+
+// combineCRCInParts caculates the total CRC of continuous parts
+func combineCRCInParts(dps []downloadPart) uint64 {
+ if dps == nil || len(dps) == 0 {
+ return 0
+ }
+
+ crc := dps[0].CRC64
+ for i := 1; i < len(dps); i++ {
+ crc = CRC64Combine(crc, dps[i].CRC64, (uint64)(dps[i].End-dps[i].Start+1))
+ }
+
+ return crc
+}
+
+// downloadFile downloads file concurrently without checkpoint.
+func (bucket Bucket) downloadFile(objectKey, filePath string, partSize int64, options []Option, routines int, uRange *unpackedRange) error {
+ tempFilePath := filePath + TempFileSuffix
+ listener := getProgressListener(options)
+
+ payerOptions := []Option{}
+ payer := getPayer(options)
+ if payer != "" {
+ payerOptions = append(payerOptions, RequestPayer(PayerType(payer)))
+ }
+
+ // If the file does not exist, create one. If exists, the download will overwrite it.
+ fd, err := os.OpenFile(tempFilePath, os.O_WRONLY|os.O_CREATE, FilePermMode)
+ if err != nil {
+ return err
+ }
+ fd.Close()
+
+ meta, err := bucket.GetObjectDetailedMeta(objectKey, payerOptions...)
+ if err != nil {
+ return err
+ }
+
+ objectSize, err := strconv.ParseInt(meta.Get(HTTPHeaderContentLength), 10, 0)
+ if err != nil {
+ return err
+ }
+
+ enableCRC := false
+ expectedCRC := (uint64)(0)
+ if bucket.getConfig().IsEnableCRC && meta.Get(HTTPHeaderOssCRC64) != "" {
+ if uRange == nil || (!uRange.hasStart && !uRange.hasEnd) {
+ enableCRC = true
+ expectedCRC, _ = strconv.ParseUint(meta.Get(HTTPHeaderOssCRC64), 10, 0)
+ }
+ }
+
+ // Get the parts of the file
+ parts := getDownloadParts(objectSize, partSize, uRange)
+ jobs := make(chan downloadPart, len(parts))
+ results := make(chan downloadPart, len(parts))
+ failed := make(chan error)
+ die := make(chan bool)
+
+ var completedBytes int64
+ totalBytes := getObjectBytes(parts)
+ event := newProgressEvent(TransferStartedEvent, 0, totalBytes)
+ publishProgress(listener, event)
+
+ // Start the download workers
+ arg := downloadWorkerArg{&bucket, objectKey, tempFilePath, options, downloadPartHooker, enableCRC}
+ for w := 1; w <= routines; w++ {
+ go downloadWorker(w, arg, jobs, results, failed, die)
+ }
+
+ // Download parts concurrently
+ go downloadScheduler(jobs, parts)
+
+ // Waiting for parts download finished
+ completed := 0
+ for completed < len(parts) {
+ select {
+ case part := <-results:
+ completed++
+ completedBytes += (part.End - part.Start + 1)
+ parts[part.Index].CRC64 = part.CRC64
+ event = newProgressEvent(TransferDataEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+ case err := <-failed:
+ close(die)
+ event = newProgressEvent(TransferFailedEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+ return err
+ }
+
+ if completed >= len(parts) {
+ break
+ }
+ }
+
+ event = newProgressEvent(TransferCompletedEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+
+ if enableCRC {
+ actualCRC := combineCRCInParts(parts)
+ err = checkDownloadCRC(actualCRC, expectedCRC)
+ if err != nil {
+ return err
+ }
+ }
+
+ return os.Rename(tempFilePath, filePath)
+}
+
+// ----- Concurrent download with chcekpoint -----
+
+const downloadCpMagic = "92611BED-89E2-46B6-89E5-72F273D4B0A3"
+
+type downloadCheckpoint struct {
+ Magic string // Magic
+ MD5 string // Checkpoint content MD5
+ FilePath string // Local file
+ Object string // Key
+ ObjStat objectStat // Object status
+ Parts []downloadPart // All download parts
+ PartStat []bool // Parts' download status
+ Start int64 // Start point of the file
+ End int64 // End point of the file
+ enableCRC bool // Whether has CRC check
+ CRC uint64 // CRC check value
+}
+
+type objectStat struct {
+ Size int64 // Object size
+ LastModified string // Last modified time
+ Etag string // Etag
+}
+
+// isValid flags of checkpoint data is valid. It returns true when the data is valid and the checkpoint is valid and the object is not updated.
+func (cp downloadCheckpoint) isValid(meta http.Header, uRange *unpackedRange) (bool, error) {
+ // Compare the CP's Magic and the MD5
+ cpb := cp
+ cpb.MD5 = ""
+ js, _ := json.Marshal(cpb)
+ sum := md5.Sum(js)
+ b64 := base64.StdEncoding.EncodeToString(sum[:])
+
+ if cp.Magic != downloadCpMagic || b64 != cp.MD5 {
+ return false, nil
+ }
+
+ objectSize, err := strconv.ParseInt(meta.Get(HTTPHeaderContentLength), 10, 0)
+ if err != nil {
+ return false, err
+ }
+
+ // Compare the object size, last modified time and etag
+ if cp.ObjStat.Size != objectSize ||
+ cp.ObjStat.LastModified != meta.Get(HTTPHeaderLastModified) ||
+ cp.ObjStat.Etag != meta.Get(HTTPHeaderEtag) {
+ return false, nil
+ }
+
+ // Check the download range
+ if uRange != nil {
+ start, end := adjustRange(uRange, objectSize)
+ if start != cp.Start || end != cp.End {
+ return false, nil
+ }
+ }
+
+ return true, nil
+}
+
+// load checkpoint from local file
+func (cp *downloadCheckpoint) load(filePath string) error {
+ contents, err := ioutil.ReadFile(filePath)
+ if err != nil {
+ return err
+ }
+
+ err = json.Unmarshal(contents, cp)
+ return err
+}
+
+// dump funciton dumps to file
+func (cp *downloadCheckpoint) dump(filePath string) error {
+ bcp := *cp
+
+ // Calculate MD5
+ bcp.MD5 = ""
+ js, err := json.Marshal(bcp)
+ if err != nil {
+ return err
+ }
+ sum := md5.Sum(js)
+ b64 := base64.StdEncoding.EncodeToString(sum[:])
+ bcp.MD5 = b64
+
+ // Serialize
+ js, err = json.Marshal(bcp)
+ if err != nil {
+ return err
+ }
+
+ // Dump
+ return ioutil.WriteFile(filePath, js, FilePermMode)
+}
+
+// todoParts gets unfinished parts
+func (cp downloadCheckpoint) todoParts() []downloadPart {
+ dps := []downloadPart{}
+ for i, ps := range cp.PartStat {
+ if !ps {
+ dps = append(dps, cp.Parts[i])
+ }
+ }
+ return dps
+}
+
+// getCompletedBytes gets completed size
+func (cp downloadCheckpoint) getCompletedBytes() int64 {
+ var completedBytes int64
+ for i, part := range cp.Parts {
+ if cp.PartStat[i] {
+ completedBytes += (part.End - part.Start + 1)
+ }
+ }
+ return completedBytes
+}
+
+// prepare initiates download tasks
+func (cp *downloadCheckpoint) prepare(meta http.Header, bucket *Bucket, objectKey, filePath string, partSize int64, uRange *unpackedRange) error {
+ // CP
+ cp.Magic = downloadCpMagic
+ cp.FilePath = filePath
+ cp.Object = objectKey
+
+ objectSize, err := strconv.ParseInt(meta.Get(HTTPHeaderContentLength), 10, 0)
+ if err != nil {
+ return err
+ }
+
+ cp.ObjStat.Size = objectSize
+ cp.ObjStat.LastModified = meta.Get(HTTPHeaderLastModified)
+ cp.ObjStat.Etag = meta.Get(HTTPHeaderEtag)
+
+ if bucket.getConfig().IsEnableCRC && meta.Get(HTTPHeaderOssCRC64) != "" {
+ if uRange == nil || (!uRange.hasStart && !uRange.hasEnd) {
+ cp.enableCRC = true
+ cp.CRC, _ = strconv.ParseUint(meta.Get(HTTPHeaderOssCRC64), 10, 0)
+ }
+ }
+
+ // Parts
+ cp.Parts = getDownloadParts(objectSize, partSize, uRange)
+ cp.PartStat = make([]bool, len(cp.Parts))
+ for i := range cp.PartStat {
+ cp.PartStat[i] = false
+ }
+
+ return nil
+}
+
+func (cp *downloadCheckpoint) complete(cpFilePath, downFilepath string) error {
+ os.Remove(cpFilePath)
+ return os.Rename(downFilepath, cp.FilePath)
+}
+
+// downloadFileWithCp downloads files with checkpoint.
+func (bucket Bucket) downloadFileWithCp(objectKey, filePath string, partSize int64, options []Option, cpFilePath string, routines int, uRange *unpackedRange) error {
+ tempFilePath := filePath + TempFileSuffix
+ listener := getProgressListener(options)
+
+ payerOptions := []Option{}
+ payer := getPayer(options)
+ if payer != "" {
+ payerOptions = append(payerOptions, RequestPayer(PayerType(payer)))
+ }
+
+ // Load checkpoint data.
+ dcp := downloadCheckpoint{}
+ err := dcp.load(cpFilePath)
+ if err != nil {
+ os.Remove(cpFilePath)
+ }
+
+ // Get the object detailed meta.
+ meta, err := bucket.GetObjectDetailedMeta(objectKey, payerOptions...)
+ if err != nil {
+ return err
+ }
+
+ // Load error or data invalid. Re-initialize the download.
+ valid, err := dcp.isValid(meta, uRange)
+ if err != nil || !valid {
+ if err = dcp.prepare(meta, &bucket, objectKey, filePath, partSize, uRange); err != nil {
+ return err
+ }
+ os.Remove(cpFilePath)
+ }
+
+ // Create the file if not exists. Otherwise the parts download will overwrite it.
+ fd, err := os.OpenFile(tempFilePath, os.O_WRONLY|os.O_CREATE, FilePermMode)
+ if err != nil {
+ return err
+ }
+ fd.Close()
+
+ // Unfinished parts
+ parts := dcp.todoParts()
+ jobs := make(chan downloadPart, len(parts))
+ results := make(chan downloadPart, len(parts))
+ failed := make(chan error)
+ die := make(chan bool)
+
+ completedBytes := dcp.getCompletedBytes()
+ event := newProgressEvent(TransferStartedEvent, completedBytes, dcp.ObjStat.Size)
+ publishProgress(listener, event)
+
+ // Start the download workers routine
+ arg := downloadWorkerArg{&bucket, objectKey, tempFilePath, options, downloadPartHooker, dcp.enableCRC}
+ for w := 1; w <= routines; w++ {
+ go downloadWorker(w, arg, jobs, results, failed, die)
+ }
+
+ // Concurrently downloads parts
+ go downloadScheduler(jobs, parts)
+
+ // Wait for the parts download finished
+ completed := 0
+ for completed < len(parts) {
+ select {
+ case part := <-results:
+ completed++
+ dcp.PartStat[part.Index] = true
+ dcp.Parts[part.Index].CRC64 = part.CRC64
+ dcp.dump(cpFilePath)
+ completedBytes += (part.End - part.Start + 1)
+ event = newProgressEvent(TransferDataEvent, completedBytes, dcp.ObjStat.Size)
+ publishProgress(listener, event)
+ case err := <-failed:
+ close(die)
+ event = newProgressEvent(TransferFailedEvent, completedBytes, dcp.ObjStat.Size)
+ publishProgress(listener, event)
+ return err
+ }
+
+ if completed >= len(parts) {
+ break
+ }
+ }
+
+ event = newProgressEvent(TransferCompletedEvent, completedBytes, dcp.ObjStat.Size)
+ publishProgress(listener, event)
+
+ if dcp.enableCRC {
+ actualCRC := combineCRCInParts(dcp.Parts)
+ err = checkDownloadCRC(actualCRC, dcp.CRC)
+ if err != nil {
+ return err
+ }
+ }
+
+ return dcp.complete(cpFilePath, tempFilePath)
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/error.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/error.go
new file mode 100644
index 000000000..6d7b4e0fa
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/error.go
@@ -0,0 +1,94 @@
+package oss
+
+import (
+ "encoding/xml"
+ "fmt"
+ "net/http"
+ "strings"
+)
+
+// ServiceError contains fields of the error response from Oss Service REST API.
+type ServiceError struct {
+ XMLName xml.Name `xml:"Error"`
+ Code string `xml:"Code"` // The error code returned from OSS to the caller
+ Message string `xml:"Message"` // The detail error message from OSS
+ RequestID string `xml:"RequestId"` // The UUID used to uniquely identify the request
+ HostID string `xml:"HostId"` // The OSS server cluster's Id
+ Endpoint string `xml:"Endpoint"`
+ RawMessage string // The raw messages from OSS
+ StatusCode int // HTTP status code
+}
+
+// Error implements interface error
+func (e ServiceError) Error() string {
+ if e.Endpoint == "" {
+ return fmt.Sprintf("oss: service returned error: StatusCode=%d, ErrorCode=%s, ErrorMessage=\"%s\", RequestId=%s",
+ e.StatusCode, e.Code, e.Message, e.RequestID)
+ }
+ return fmt.Sprintf("oss: service returned error: StatusCode=%d, ErrorCode=%s, ErrorMessage=\"%s\", RequestId=%s, Endpoint=%s",
+ e.StatusCode, e.Code, e.Message, e.RequestID, e.Endpoint)
+}
+
+// UnexpectedStatusCodeError is returned when a storage service responds with neither an error
+// nor with an HTTP status code indicating success.
+type UnexpectedStatusCodeError struct {
+ allowed []int // The expected HTTP stats code returned from OSS
+ got int // The actual HTTP status code from OSS
+}
+
+// Error implements interface error
+func (e UnexpectedStatusCodeError) Error() string {
+ s := func(i int) string { return fmt.Sprintf("%d %s", i, http.StatusText(i)) }
+
+ got := s(e.got)
+ expected := []string{}
+ for _, v := range e.allowed {
+ expected = append(expected, s(v))
+ }
+ return fmt.Sprintf("oss: status code from service response is %s; was expecting %s",
+ got, strings.Join(expected, " or "))
+}
+
+// Got is the actual status code returned by oss.
+func (e UnexpectedStatusCodeError) Got() int {
+ return e.got
+}
+
+// checkRespCode returns UnexpectedStatusError if the given response code is not
+// one of the allowed status codes; otherwise nil.
+func checkRespCode(respCode int, allowed []int) error {
+ for _, v := range allowed {
+ if respCode == v {
+ return nil
+ }
+ }
+ return UnexpectedStatusCodeError{allowed, respCode}
+}
+
+// CRCCheckError is returned when crc check is inconsistent between client and server
+type CRCCheckError struct {
+ clientCRC uint64 // Calculated CRC64 in client
+ serverCRC uint64 // Calculated CRC64 in server
+ operation string // Upload operations such as PutObject/AppendObject/UploadPart, etc
+ requestID string // The request id of this operation
+}
+
+// Error implements interface error
+func (e CRCCheckError) Error() string {
+ return fmt.Sprintf("oss: the crc of %s is inconsistent, client %d but server %d; request id is %s",
+ e.operation, e.clientCRC, e.serverCRC, e.requestID)
+}
+
+func checkDownloadCRC(clientCRC, serverCRC uint64) error {
+ if clientCRC == serverCRC {
+ return nil
+ }
+ return CRCCheckError{clientCRC, serverCRC, "DownloadFile", ""}
+}
+
+func checkCRC(resp *Response, operation string) error {
+ if resp.Headers.Get(HTTPHeaderOssCRC64) == "" || resp.ClientCRC == resp.ServerCRC {
+ return nil
+ }
+ return CRCCheckError{resp.ClientCRC, resp.ServerCRC, operation, resp.Headers.Get(HTTPHeaderOssRequestID)}
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/mime.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/mime.go
new file mode 100644
index 000000000..11485973d
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/mime.go
@@ -0,0 +1,245 @@
+package oss
+
+import (
+ "mime"
+ "path"
+ "strings"
+)
+
+var extToMimeType = map[string]string{
+ ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+ ".xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
+ ".potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
+ ".ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
+ ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
+ ".sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide",
+ ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ ".dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
+ ".xlam": "application/vnd.ms-excel.addin.macroEnabled.12",
+ ".xlsb": "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
+ ".apk": "application/vnd.android.package-archive",
+ ".hqx": "application/mac-binhex40",
+ ".cpt": "application/mac-compactpro",
+ ".doc": "application/msword",
+ ".ogg": "application/ogg",
+ ".pdf": "application/pdf",
+ ".rtf": "text/rtf",
+ ".mif": "application/vnd.mif",
+ ".xls": "application/vnd.ms-excel",
+ ".ppt": "application/vnd.ms-powerpoint",
+ ".odc": "application/vnd.oasis.opendocument.chart",
+ ".odb": "application/vnd.oasis.opendocument.database",
+ ".odf": "application/vnd.oasis.opendocument.formula",
+ ".odg": "application/vnd.oasis.opendocument.graphics",
+ ".otg": "application/vnd.oasis.opendocument.graphics-template",
+ ".odi": "application/vnd.oasis.opendocument.image",
+ ".odp": "application/vnd.oasis.opendocument.presentation",
+ ".otp": "application/vnd.oasis.opendocument.presentation-template",
+ ".ods": "application/vnd.oasis.opendocument.spreadsheet",
+ ".ots": "application/vnd.oasis.opendocument.spreadsheet-template",
+ ".odt": "application/vnd.oasis.opendocument.text",
+ ".odm": "application/vnd.oasis.opendocument.text-master",
+ ".ott": "application/vnd.oasis.opendocument.text-template",
+ ".oth": "application/vnd.oasis.opendocument.text-web",
+ ".sxw": "application/vnd.sun.xml.writer",
+ ".stw": "application/vnd.sun.xml.writer.template",
+ ".sxc": "application/vnd.sun.xml.calc",
+ ".stc": "application/vnd.sun.xml.calc.template",
+ ".sxd": "application/vnd.sun.xml.draw",
+ ".std": "application/vnd.sun.xml.draw.template",
+ ".sxi": "application/vnd.sun.xml.impress",
+ ".sti": "application/vnd.sun.xml.impress.template",
+ ".sxg": "application/vnd.sun.xml.writer.global",
+ ".sxm": "application/vnd.sun.xml.math",
+ ".sis": "application/vnd.symbian.install",
+ ".wbxml": "application/vnd.wap.wbxml",
+ ".wmlc": "application/vnd.wap.wmlc",
+ ".wmlsc": "application/vnd.wap.wmlscriptc",
+ ".bcpio": "application/x-bcpio",
+ ".torrent": "application/x-bittorrent",
+ ".bz2": "application/x-bzip2",
+ ".vcd": "application/x-cdlink",
+ ".pgn": "application/x-chess-pgn",
+ ".cpio": "application/x-cpio",
+ ".csh": "application/x-csh",
+ ".dvi": "application/x-dvi",
+ ".spl": "application/x-futuresplash",
+ ".gtar": "application/x-gtar",
+ ".hdf": "application/x-hdf",
+ ".jar": "application/x-java-archive",
+ ".jnlp": "application/x-java-jnlp-file",
+ ".js": "application/x-javascript",
+ ".ksp": "application/x-kspread",
+ ".chrt": "application/x-kchart",
+ ".kil": "application/x-killustrator",
+ ".latex": "application/x-latex",
+ ".rpm": "application/x-rpm",
+ ".sh": "application/x-sh",
+ ".shar": "application/x-shar",
+ ".swf": "application/x-shockwave-flash",
+ ".sit": "application/x-stuffit",
+ ".sv4cpio": "application/x-sv4cpio",
+ ".sv4crc": "application/x-sv4crc",
+ ".tar": "application/x-tar",
+ ".tcl": "application/x-tcl",
+ ".tex": "application/x-tex",
+ ".man": "application/x-troff-man",
+ ".me": "application/x-troff-me",
+ ".ms": "application/x-troff-ms",
+ ".ustar": "application/x-ustar",
+ ".src": "application/x-wais-source",
+ ".zip": "application/zip",
+ ".m3u": "audio/x-mpegurl",
+ ".ra": "audio/x-pn-realaudio",
+ ".wav": "audio/x-wav",
+ ".wma": "audio/x-ms-wma",
+ ".wax": "audio/x-ms-wax",
+ ".pdb": "chemical/x-pdb",
+ ".xyz": "chemical/x-xyz",
+ ".bmp": "image/bmp",
+ ".gif": "image/gif",
+ ".ief": "image/ief",
+ ".png": "image/png",
+ ".wbmp": "image/vnd.wap.wbmp",
+ ".ras": "image/x-cmu-raster",
+ ".pnm": "image/x-portable-anymap",
+ ".pbm": "image/x-portable-bitmap",
+ ".pgm": "image/x-portable-graymap",
+ ".ppm": "image/x-portable-pixmap",
+ ".rgb": "image/x-rgb",
+ ".xbm": "image/x-xbitmap",
+ ".xpm": "image/x-xpixmap",
+ ".xwd": "image/x-xwindowdump",
+ ".css": "text/css",
+ ".rtx": "text/richtext",
+ ".tsv": "text/tab-separated-values",
+ ".jad": "text/vnd.sun.j2me.app-descriptor",
+ ".wml": "text/vnd.wap.wml",
+ ".wmls": "text/vnd.wap.wmlscript",
+ ".etx": "text/x-setext",
+ ".mxu": "video/vnd.mpegurl",
+ ".flv": "video/x-flv",
+ ".wm": "video/x-ms-wm",
+ ".wmv": "video/x-ms-wmv",
+ ".wmx": "video/x-ms-wmx",
+ ".wvx": "video/x-ms-wvx",
+ ".avi": "video/x-msvideo",
+ ".movie": "video/x-sgi-movie",
+ ".ice": "x-conference/x-cooltalk",
+ ".3gp": "video/3gpp",
+ ".ai": "application/postscript",
+ ".aif": "audio/x-aiff",
+ ".aifc": "audio/x-aiff",
+ ".aiff": "audio/x-aiff",
+ ".asc": "text/plain",
+ ".atom": "application/atom+xml",
+ ".au": "audio/basic",
+ ".bin": "application/octet-stream",
+ ".cdf": "application/x-netcdf",
+ ".cgm": "image/cgm",
+ ".class": "application/octet-stream",
+ ".dcr": "application/x-director",
+ ".dif": "video/x-dv",
+ ".dir": "application/x-director",
+ ".djv": "image/vnd.djvu",
+ ".djvu": "image/vnd.djvu",
+ ".dll": "application/octet-stream",
+ ".dmg": "application/octet-stream",
+ ".dms": "application/octet-stream",
+ ".dtd": "application/xml-dtd",
+ ".dv": "video/x-dv",
+ ".dxr": "application/x-director",
+ ".eps": "application/postscript",
+ ".exe": "application/octet-stream",
+ ".ez": "application/andrew-inset",
+ ".gram": "application/srgs",
+ ".grxml": "application/srgs+xml",
+ ".gz": "application/x-gzip",
+ ".htm": "text/html",
+ ".html": "text/html",
+ ".ico": "image/x-icon",
+ ".ics": "text/calendar",
+ ".ifb": "text/calendar",
+ ".iges": "model/iges",
+ ".igs": "model/iges",
+ ".jp2": "image/jp2",
+ ".jpe": "image/jpeg",
+ ".jpeg": "image/jpeg",
+ ".jpg": "image/jpeg",
+ ".kar": "audio/midi",
+ ".lha": "application/octet-stream",
+ ".lzh": "application/octet-stream",
+ ".m4a": "audio/mp4a-latm",
+ ".m4p": "audio/mp4a-latm",
+ ".m4u": "video/vnd.mpegurl",
+ ".m4v": "video/x-m4v",
+ ".mac": "image/x-macpaint",
+ ".mathml": "application/mathml+xml",
+ ".mesh": "model/mesh",
+ ".mid": "audio/midi",
+ ".midi": "audio/midi",
+ ".mov": "video/quicktime",
+ ".mp2": "audio/mpeg",
+ ".mp3": "audio/mpeg",
+ ".mp4": "video/mp4",
+ ".mpe": "video/mpeg",
+ ".mpeg": "video/mpeg",
+ ".mpg": "video/mpeg",
+ ".mpga": "audio/mpeg",
+ ".msh": "model/mesh",
+ ".nc": "application/x-netcdf",
+ ".oda": "application/oda",
+ ".ogv": "video/ogv",
+ ".pct": "image/pict",
+ ".pic": "image/pict",
+ ".pict": "image/pict",
+ ".pnt": "image/x-macpaint",
+ ".pntg": "image/x-macpaint",
+ ".ps": "application/postscript",
+ ".qt": "video/quicktime",
+ ".qti": "image/x-quicktime",
+ ".qtif": "image/x-quicktime",
+ ".ram": "audio/x-pn-realaudio",
+ ".rdf": "application/rdf+xml",
+ ".rm": "application/vnd.rn-realmedia",
+ ".roff": "application/x-troff",
+ ".sgm": "text/sgml",
+ ".sgml": "text/sgml",
+ ".silo": "model/mesh",
+ ".skd": "application/x-koan",
+ ".skm": "application/x-koan",
+ ".skp": "application/x-koan",
+ ".skt": "application/x-koan",
+ ".smi": "application/smil",
+ ".smil": "application/smil",
+ ".snd": "audio/basic",
+ ".so": "application/octet-stream",
+ ".svg": "image/svg+xml",
+ ".t": "application/x-troff",
+ ".texi": "application/x-texinfo",
+ ".texinfo": "application/x-texinfo",
+ ".tif": "image/tiff",
+ ".tiff": "image/tiff",
+ ".tr": "application/x-troff",
+ ".txt": "text/plain",
+ ".vrml": "model/vrml",
+ ".vxml": "application/voicexml+xml",
+ ".webm": "video/webm",
+ ".wrl": "model/vrml",
+ ".xht": "application/xhtml+xml",
+ ".xhtml": "application/xhtml+xml",
+ ".xml": "application/xml",
+ ".xsl": "application/xml",
+ ".xslt": "application/xslt+xml",
+ ".xul": "application/vnd.mozilla.xul+xml",
+}
+
+// TypeByExtension returns the MIME type associated with the file extension ext.
+// gets the file's MIME type for HTTP header Content-Type
+func TypeByExtension(filePath string) string {
+ typ := mime.TypeByExtension(path.Ext(filePath))
+ if typ == "" {
+ typ = extToMimeType[strings.ToLower(path.Ext(filePath))]
+ }
+ return typ
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/model.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/model.go
new file mode 100644
index 000000000..51f1c31e3
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/model.go
@@ -0,0 +1,68 @@
+package oss
+
+import (
+ "hash"
+ "io"
+ "net/http"
+)
+
+// Response defines HTTP response from OSS
+type Response struct {
+ StatusCode int
+ Headers http.Header
+ Body io.ReadCloser
+ ClientCRC uint64
+ ServerCRC uint64
+}
+
+func (r *Response) Read(p []byte) (n int, err error) {
+ return r.Body.Read(p)
+}
+
+func (r *Response) Close() error {
+ return r.Body.Close()
+}
+
+// PutObjectRequest is the request of DoPutObject
+type PutObjectRequest struct {
+ ObjectKey string
+ Reader io.Reader
+}
+
+// GetObjectRequest is the request of DoGetObject
+type GetObjectRequest struct {
+ ObjectKey string
+}
+
+// GetObjectResult is the result of DoGetObject
+type GetObjectResult struct {
+ Response *Response
+ ClientCRC hash.Hash64
+ ServerCRC uint64
+}
+
+// AppendObjectRequest is the requtest of DoAppendObject
+type AppendObjectRequest struct {
+ ObjectKey string
+ Reader io.Reader
+ Position int64
+}
+
+// AppendObjectResult is the result of DoAppendObject
+type AppendObjectResult struct {
+ NextPosition int64
+ CRC uint64
+}
+
+// UploadPartRequest is the request of DoUploadPart
+type UploadPartRequest struct {
+ InitResult *InitiateMultipartUploadResult
+ Reader io.Reader
+ PartSize int64
+ PartNumber int
+}
+
+// UploadPartResult is the result of DoUploadPart
+type UploadPartResult struct {
+ Part UploadPart
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/multicopy.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/multicopy.go
new file mode 100644
index 000000000..e2597c24e
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/multicopy.go
@@ -0,0 +1,468 @@
+package oss
+
+import (
+ "crypto/md5"
+ "encoding/base64"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "os"
+ "strconv"
+)
+
+// CopyFile is multipart copy object
+//
+// srcBucketName source bucket name
+// srcObjectKey source object name
+// destObjectKey target object name in the form of bucketname.objectkey
+// partSize the part size in byte.
+// options object's contraints. Check out function InitiateMultipartUpload.
+//
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) CopyFile(srcBucketName, srcObjectKey, destObjectKey string, partSize int64, options ...Option) error {
+ destBucketName := bucket.BucketName
+ if partSize < MinPartSize || partSize > MaxPartSize {
+ return errors.New("oss: part size invalid range (1024KB, 5GB]")
+ }
+
+ cpConf := getCpConfig(options)
+ routines := getRoutines(options)
+
+ if cpConf != nil && cpConf.IsEnable {
+ cpFilePath := getCopyCpFilePath(cpConf, srcBucketName, srcObjectKey, destBucketName, destObjectKey)
+ if cpFilePath != "" {
+ return bucket.copyFileWithCp(srcBucketName, srcObjectKey, destBucketName, destObjectKey, partSize, options, cpFilePath, routines)
+ }
+ }
+
+ return bucket.copyFile(srcBucketName, srcObjectKey, destBucketName, destObjectKey,
+ partSize, options, routines)
+}
+
+func getCopyCpFilePath(cpConf *cpConfig, srcBucket, srcObject, destBucket, destObject string) string {
+ if cpConf.FilePath == "" && cpConf.DirPath != "" {
+ dest := fmt.Sprintf("oss://%v/%v", destBucket, destObject)
+ src := fmt.Sprintf("oss://%v/%v", srcBucket, srcObject)
+ cpFileName := getCpFileName(src, dest)
+ cpConf.FilePath = cpConf.DirPath + string(os.PathSeparator) + cpFileName
+ }
+ return cpConf.FilePath
+}
+
+// ----- Concurrently copy without checkpoint ---------
+
+// copyWorkerArg defines the copy worker arguments
+type copyWorkerArg struct {
+ bucket *Bucket
+ imur InitiateMultipartUploadResult
+ srcBucketName string
+ srcObjectKey string
+ options []Option
+ hook copyPartHook
+}
+
+// copyPartHook is the hook for testing purpose
+type copyPartHook func(part copyPart) error
+
+var copyPartHooker copyPartHook = defaultCopyPartHook
+
+func defaultCopyPartHook(part copyPart) error {
+ return nil
+}
+
+// copyWorker copies worker
+func copyWorker(id int, arg copyWorkerArg, jobs <-chan copyPart, results chan<- UploadPart, failed chan<- error, die <-chan bool) {
+ for chunk := range jobs {
+ if err := arg.hook(chunk); err != nil {
+ failed <- err
+ break
+ }
+ chunkSize := chunk.End - chunk.Start + 1
+ part, err := arg.bucket.UploadPartCopy(arg.imur, arg.srcBucketName, arg.srcObjectKey,
+ chunk.Start, chunkSize, chunk.Number, arg.options...)
+ if err != nil {
+ failed <- err
+ break
+ }
+ select {
+ case <-die:
+ return
+ default:
+ }
+ results <- part
+ }
+}
+
+// copyScheduler
+func copyScheduler(jobs chan copyPart, parts []copyPart) {
+ for _, part := range parts {
+ jobs <- part
+ }
+ close(jobs)
+}
+
+// copyPart structure
+type copyPart struct {
+ Number int // Part number (from 1 to 10,000)
+ Start int64 // The start index in the source file.
+ End int64 // The end index in the source file
+}
+
+// getCopyParts calculates copy parts
+func getCopyParts(objectSize, partSize int64) []copyPart {
+ parts := []copyPart{}
+ part := copyPart{}
+ i := 0
+ for offset := int64(0); offset < objectSize; offset += partSize {
+ part.Number = i + 1
+ part.Start = offset
+ part.End = GetPartEnd(offset, objectSize, partSize)
+ parts = append(parts, part)
+ i++
+ }
+ return parts
+}
+
+// getSrcObjectBytes gets the source file size
+func getSrcObjectBytes(parts []copyPart) int64 {
+ var ob int64
+ for _, part := range parts {
+ ob += (part.End - part.Start + 1)
+ }
+ return ob
+}
+
+// copyFile is a concurrently copy without checkpoint
+func (bucket Bucket) copyFile(srcBucketName, srcObjectKey, destBucketName, destObjectKey string,
+ partSize int64, options []Option, routines int) error {
+ descBucket, err := bucket.Client.Bucket(destBucketName)
+ srcBucket, err := bucket.Client.Bucket(srcBucketName)
+ listener := getProgressListener(options)
+
+ payerOptions := []Option{}
+ payer := getPayer(options)
+ if payer != "" {
+ payerOptions = append(payerOptions, RequestPayer(PayerType(payer)))
+ }
+
+ meta, err := srcBucket.GetObjectDetailedMeta(srcObjectKey, payerOptions...)
+ if err != nil {
+ return err
+ }
+
+ objectSize, err := strconv.ParseInt(meta.Get(HTTPHeaderContentLength), 10, 0)
+ if err != nil {
+ return err
+ }
+
+ // Get copy parts
+ parts := getCopyParts(objectSize, partSize)
+ // Initialize the multipart upload
+ imur, err := descBucket.InitiateMultipartUpload(destObjectKey, options...)
+ if err != nil {
+ return err
+ }
+
+ jobs := make(chan copyPart, len(parts))
+ results := make(chan UploadPart, len(parts))
+ failed := make(chan error)
+ die := make(chan bool)
+
+ var completedBytes int64
+ totalBytes := getSrcObjectBytes(parts)
+ event := newProgressEvent(TransferStartedEvent, 0, totalBytes)
+ publishProgress(listener, event)
+
+ // Start to copy workers
+ arg := copyWorkerArg{descBucket, imur, srcBucketName, srcObjectKey, payerOptions, copyPartHooker}
+ for w := 1; w <= routines; w++ {
+ go copyWorker(w, arg, jobs, results, failed, die)
+ }
+
+ // Start the scheduler
+ go copyScheduler(jobs, parts)
+
+ // Wait for the parts finished.
+ completed := 0
+ ups := make([]UploadPart, len(parts))
+ for completed < len(parts) {
+ select {
+ case part := <-results:
+ completed++
+ ups[part.PartNumber-1] = part
+ completedBytes += (parts[part.PartNumber-1].End - parts[part.PartNumber-1].Start + 1)
+ event = newProgressEvent(TransferDataEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+ case err := <-failed:
+ close(die)
+ descBucket.AbortMultipartUpload(imur, payerOptions...)
+ event = newProgressEvent(TransferFailedEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+ return err
+ }
+
+ if completed >= len(parts) {
+ break
+ }
+ }
+
+ event = newProgressEvent(TransferCompletedEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+
+ // Complete the multipart upload
+ _, err = descBucket.CompleteMultipartUpload(imur, ups, payerOptions...)
+ if err != nil {
+ bucket.AbortMultipartUpload(imur, payerOptions...)
+ return err
+ }
+ return nil
+}
+
+// ----- Concurrently copy with checkpoint -----
+
+const copyCpMagic = "84F1F18C-FF1D-403B-A1D8-9DEB5F65910A"
+
+type copyCheckpoint struct {
+ Magic string // Magic
+ MD5 string // CP content MD5
+ SrcBucketName string // Source bucket
+ SrcObjectKey string // Source object
+ DestBucketName string // Target bucket
+ DestObjectKey string // Target object
+ CopyID string // Copy ID
+ ObjStat objectStat // Object stat
+ Parts []copyPart // Copy parts
+ CopyParts []UploadPart // The uploaded parts
+ PartStat []bool // The part status
+}
+
+// isValid checks if the data is valid which means CP is valid and object is not updated.
+func (cp copyCheckpoint) isValid(meta http.Header) (bool, error) {
+ // Compare CP's magic number and the MD5.
+ cpb := cp
+ cpb.MD5 = ""
+ js, _ := json.Marshal(cpb)
+ sum := md5.Sum(js)
+ b64 := base64.StdEncoding.EncodeToString(sum[:])
+
+ if cp.Magic != downloadCpMagic || b64 != cp.MD5 {
+ return false, nil
+ }
+
+ objectSize, err := strconv.ParseInt(meta.Get(HTTPHeaderContentLength), 10, 0)
+ if err != nil {
+ return false, err
+ }
+
+ // Compare the object size and last modified time and etag.
+ if cp.ObjStat.Size != objectSize ||
+ cp.ObjStat.LastModified != meta.Get(HTTPHeaderLastModified) ||
+ cp.ObjStat.Etag != meta.Get(HTTPHeaderEtag) {
+ return false, nil
+ }
+
+ return true, nil
+}
+
+// load loads from the checkpoint file
+func (cp *copyCheckpoint) load(filePath string) error {
+ contents, err := ioutil.ReadFile(filePath)
+ if err != nil {
+ return err
+ }
+
+ err = json.Unmarshal(contents, cp)
+ return err
+}
+
+// update updates the parts status
+func (cp *copyCheckpoint) update(part UploadPart) {
+ cp.CopyParts[part.PartNumber-1] = part
+ cp.PartStat[part.PartNumber-1] = true
+}
+
+// dump dumps the CP to the file
+func (cp *copyCheckpoint) dump(filePath string) error {
+ bcp := *cp
+
+ // Calculate MD5
+ bcp.MD5 = ""
+ js, err := json.Marshal(bcp)
+ if err != nil {
+ return err
+ }
+ sum := md5.Sum(js)
+ b64 := base64.StdEncoding.EncodeToString(sum[:])
+ bcp.MD5 = b64
+
+ // Serialization
+ js, err = json.Marshal(bcp)
+ if err != nil {
+ return err
+ }
+
+ // Dump
+ return ioutil.WriteFile(filePath, js, FilePermMode)
+}
+
+// todoParts returns unfinished parts
+func (cp copyCheckpoint) todoParts() []copyPart {
+ dps := []copyPart{}
+ for i, ps := range cp.PartStat {
+ if !ps {
+ dps = append(dps, cp.Parts[i])
+ }
+ }
+ return dps
+}
+
+// getCompletedBytes returns finished bytes count
+func (cp copyCheckpoint) getCompletedBytes() int64 {
+ var completedBytes int64
+ for i, part := range cp.Parts {
+ if cp.PartStat[i] {
+ completedBytes += (part.End - part.Start + 1)
+ }
+ }
+ return completedBytes
+}
+
+// prepare initializes the multipart upload
+func (cp *copyCheckpoint) prepare(meta http.Header, srcBucket *Bucket, srcObjectKey string, destBucket *Bucket, destObjectKey string,
+ partSize int64, options []Option) error {
+ // CP
+ cp.Magic = copyCpMagic
+ cp.SrcBucketName = srcBucket.BucketName
+ cp.SrcObjectKey = srcObjectKey
+ cp.DestBucketName = destBucket.BucketName
+ cp.DestObjectKey = destObjectKey
+
+ objectSize, err := strconv.ParseInt(meta.Get(HTTPHeaderContentLength), 10, 0)
+ if err != nil {
+ return err
+ }
+
+ cp.ObjStat.Size = objectSize
+ cp.ObjStat.LastModified = meta.Get(HTTPHeaderLastModified)
+ cp.ObjStat.Etag = meta.Get(HTTPHeaderEtag)
+
+ // Parts
+ cp.Parts = getCopyParts(objectSize, partSize)
+ cp.PartStat = make([]bool, len(cp.Parts))
+ for i := range cp.PartStat {
+ cp.PartStat[i] = false
+ }
+ cp.CopyParts = make([]UploadPart, len(cp.Parts))
+
+ // Init copy
+ imur, err := destBucket.InitiateMultipartUpload(destObjectKey, options...)
+ if err != nil {
+ return err
+ }
+ cp.CopyID = imur.UploadID
+
+ return nil
+}
+
+func (cp *copyCheckpoint) complete(bucket *Bucket, parts []UploadPart, cpFilePath string, options []Option) error {
+ imur := InitiateMultipartUploadResult{Bucket: cp.DestBucketName,
+ Key: cp.DestObjectKey, UploadID: cp.CopyID}
+ _, err := bucket.CompleteMultipartUpload(imur, parts, options...)
+ if err != nil {
+ return err
+ }
+ os.Remove(cpFilePath)
+ return err
+}
+
+// copyFileWithCp is concurrently copy with checkpoint
+func (bucket Bucket) copyFileWithCp(srcBucketName, srcObjectKey, destBucketName, destObjectKey string,
+ partSize int64, options []Option, cpFilePath string, routines int) error {
+ descBucket, err := bucket.Client.Bucket(destBucketName)
+ srcBucket, err := bucket.Client.Bucket(srcBucketName)
+ listener := getProgressListener(options)
+
+ payerOptions := []Option{}
+ payer := getPayer(options)
+ if payer != "" {
+ payerOptions = append(payerOptions, RequestPayer(PayerType(payer)))
+ }
+
+ // Load CP data
+ ccp := copyCheckpoint{}
+ err = ccp.load(cpFilePath)
+ if err != nil {
+ os.Remove(cpFilePath)
+ }
+
+ // Make sure the object is not updated.
+ meta, err := srcBucket.GetObjectDetailedMeta(srcObjectKey, payerOptions...)
+ if err != nil {
+ return err
+ }
+
+ // Load error or the CP data is invalid---reinitialize
+ valid, err := ccp.isValid(meta)
+ if err != nil || !valid {
+ if err = ccp.prepare(meta, srcBucket, srcObjectKey, descBucket, destObjectKey, partSize, options); err != nil {
+ return err
+ }
+ os.Remove(cpFilePath)
+ }
+
+ // Unfinished parts
+ parts := ccp.todoParts()
+ imur := InitiateMultipartUploadResult{
+ Bucket: destBucketName,
+ Key: destObjectKey,
+ UploadID: ccp.CopyID}
+
+ jobs := make(chan copyPart, len(parts))
+ results := make(chan UploadPart, len(parts))
+ failed := make(chan error)
+ die := make(chan bool)
+
+ completedBytes := ccp.getCompletedBytes()
+ event := newProgressEvent(TransferStartedEvent, completedBytes, ccp.ObjStat.Size)
+ publishProgress(listener, event)
+
+ // Start the worker coroutines
+ arg := copyWorkerArg{descBucket, imur, srcBucketName, srcObjectKey, payerOptions, copyPartHooker}
+ for w := 1; w <= routines; w++ {
+ go copyWorker(w, arg, jobs, results, failed, die)
+ }
+
+ // Start the scheduler
+ go copyScheduler(jobs, parts)
+
+ // Wait for the parts completed.
+ completed := 0
+ for completed < len(parts) {
+ select {
+ case part := <-results:
+ completed++
+ ccp.update(part)
+ ccp.dump(cpFilePath)
+ completedBytes += (parts[part.PartNumber-1].End - parts[part.PartNumber-1].Start + 1)
+ event = newProgressEvent(TransferDataEvent, completedBytes, ccp.ObjStat.Size)
+ publishProgress(listener, event)
+ case err := <-failed:
+ close(die)
+ event = newProgressEvent(TransferFailedEvent, completedBytes, ccp.ObjStat.Size)
+ publishProgress(listener, event)
+ return err
+ }
+
+ if completed >= len(parts) {
+ break
+ }
+ }
+
+ event = newProgressEvent(TransferCompletedEvent, completedBytes, ccp.ObjStat.Size)
+ publishProgress(listener, event)
+
+ return ccp.complete(descBucket, ccp.CopyParts, cpFilePath, payerOptions)
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/multipart.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/multipart.go
new file mode 100644
index 000000000..b5a3a05b5
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/multipart.go
@@ -0,0 +1,290 @@
+package oss
+
+import (
+ "bytes"
+ "encoding/xml"
+ "io"
+ "net/http"
+ "net/url"
+ "os"
+ "sort"
+ "strconv"
+)
+
+// InitiateMultipartUpload initializes multipart upload
+//
+// objectKey object name
+// options the object constricts for upload. The valid options are CacheControl, ContentDisposition, ContentEncoding, Expires,
+// ServerSideEncryption, Meta, check out the following link:
+// https://help.aliyun.com/document_detail/oss/api-reference/multipart-upload/InitiateMultipartUpload.html
+//
+// InitiateMultipartUploadResult the return value of the InitiateMultipartUpload, which is used for calls later on such as UploadPartFromFile,UploadPartCopy.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) InitiateMultipartUpload(objectKey string, options ...Option) (InitiateMultipartUploadResult, error) {
+ var imur InitiateMultipartUploadResult
+ opts := addContentType(options, objectKey)
+ params := map[string]interface{}{}
+ params["uploads"] = nil
+ resp, err := bucket.do("POST", objectKey, params, opts, nil, nil)
+ if err != nil {
+ return imur, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &imur)
+ return imur, err
+}
+
+// UploadPart uploads parts
+//
+// After initializing a Multipart Upload, the upload Id and object key could be used for uploading the parts.
+// Each part has its part number (ranges from 1 to 10,000). And for each upload Id, the part number identifies the position of the part in the whole file.
+// And thus with the same part number and upload Id, another part upload will overwrite the data.
+// Except the last one, minimal part size is 100KB. There's no limit on the last part size.
+//
+// imur the returned value of InitiateMultipartUpload.
+// reader io.Reader the reader for the part's data.
+// size the part size.
+// partNumber the part number (ranges from 1 to 10,000). Invalid part number will lead to InvalidArgument error.
+//
+// UploadPart the return value of the upload part. It consists of PartNumber and ETag. It's valid when error is nil.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) UploadPart(imur InitiateMultipartUploadResult, reader io.Reader,
+ partSize int64, partNumber int, options ...Option) (UploadPart, error) {
+ request := &UploadPartRequest{
+ InitResult: &imur,
+ Reader: reader,
+ PartSize: partSize,
+ PartNumber: partNumber,
+ }
+
+ result, err := bucket.DoUploadPart(request, options)
+
+ return result.Part, err
+}
+
+// UploadPartFromFile uploads part from the file.
+//
+// imur the return value of a successful InitiateMultipartUpload.
+// filePath the local file path to upload.
+// startPosition the start position in the local file.
+// partSize the part size.
+// partNumber the part number (from 1 to 10,000)
+//
+// UploadPart the return value consists of PartNumber and ETag.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) UploadPartFromFile(imur InitiateMultipartUploadResult, filePath string,
+ startPosition, partSize int64, partNumber int, options ...Option) (UploadPart, error) {
+ var part = UploadPart{}
+ fd, err := os.Open(filePath)
+ if err != nil {
+ return part, err
+ }
+ defer fd.Close()
+ fd.Seek(startPosition, os.SEEK_SET)
+
+ request := &UploadPartRequest{
+ InitResult: &imur,
+ Reader: fd,
+ PartSize: partSize,
+ PartNumber: partNumber,
+ }
+
+ result, err := bucket.DoUploadPart(request, options)
+
+ return result.Part, err
+}
+
+// DoUploadPart does the actual part upload.
+//
+// request part upload request
+//
+// UploadPartResult the result of uploading part.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) DoUploadPart(request *UploadPartRequest, options []Option) (*UploadPartResult, error) {
+ listener := getProgressListener(options)
+ options = append(options, ContentLength(request.PartSize))
+ params := map[string]interface{}{}
+ params["partNumber"] = strconv.Itoa(request.PartNumber)
+ params["uploadId"] = request.InitResult.UploadID
+ resp, err := bucket.do("PUT", request.InitResult.Key, params, options,
+ &io.LimitedReader{R: request.Reader, N: request.PartSize}, listener)
+ if err != nil {
+ return &UploadPartResult{}, err
+ }
+ defer resp.Body.Close()
+
+ part := UploadPart{
+ ETag: resp.Headers.Get(HTTPHeaderEtag),
+ PartNumber: request.PartNumber,
+ }
+
+ if bucket.getConfig().IsEnableCRC {
+ err = checkCRC(resp, "DoUploadPart")
+ if err != nil {
+ return &UploadPartResult{part}, err
+ }
+ }
+
+ return &UploadPartResult{part}, nil
+}
+
+// UploadPartCopy uploads part copy
+//
+// imur the return value of InitiateMultipartUpload
+// copySrc source Object name
+// startPosition the part's start index in the source file
+// partSize the part size
+// partNumber the part number, ranges from 1 to 10,000. If it exceeds the range OSS returns InvalidArgument error.
+// options the constraints of source object for the copy. The copy happens only when these contraints are met. Otherwise it returns error.
+// CopySourceIfNoneMatch, CopySourceIfModifiedSince CopySourceIfUnmodifiedSince, check out the following link for the detail
+// https://help.aliyun.com/document_detail/oss/api-reference/multipart-upload/UploadPartCopy.html
+//
+// UploadPart the return value consists of PartNumber and ETag.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) UploadPartCopy(imur InitiateMultipartUploadResult, srcBucketName, srcObjectKey string,
+ startPosition, partSize int64, partNumber int, options ...Option) (UploadPart, error) {
+ var out UploadPartCopyResult
+ var part UploadPart
+
+ opts := []Option{CopySource(srcBucketName, url.QueryEscape(srcObjectKey)),
+ CopySourceRange(startPosition, partSize)}
+ opts = append(opts, options...)
+ params := map[string]interface{}{}
+ params["partNumber"] = strconv.Itoa(partNumber)
+ params["uploadId"] = imur.UploadID
+ resp, err := bucket.do("PUT", imur.Key, params, opts, nil, nil)
+ if err != nil {
+ return part, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ if err != nil {
+ return part, err
+ }
+ part.ETag = out.ETag
+ part.PartNumber = partNumber
+
+ return part, nil
+}
+
+// CompleteMultipartUpload completes the multipart upload.
+//
+// imur the return value of InitiateMultipartUpload.
+// parts the array of return value of UploadPart/UploadPartFromFile/UploadPartCopy.
+//
+// CompleteMultipartUploadResponse the return value when the call succeeds. Only valid when the error is nil.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) CompleteMultipartUpload(imur InitiateMultipartUploadResult,
+ parts []UploadPart, options ...Option) (CompleteMultipartUploadResult, error) {
+ var out CompleteMultipartUploadResult
+
+ sort.Sort(uploadParts(parts))
+ cxml := completeMultipartUploadXML{}
+ cxml.Part = parts
+ bs, err := xml.Marshal(cxml)
+ if err != nil {
+ return out, err
+ }
+ buffer := new(bytes.Buffer)
+ buffer.Write(bs)
+
+ params := map[string]interface{}{}
+ params["uploadId"] = imur.UploadID
+ resp, err := bucket.do("POST", imur.Key, params, options, buffer, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ return out, err
+}
+
+// AbortMultipartUpload aborts the multipart upload.
+//
+// imur the return value of InitiateMultipartUpload.
+//
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) AbortMultipartUpload(imur InitiateMultipartUploadResult, options ...Option) error {
+ params := map[string]interface{}{}
+ params["uploadId"] = imur.UploadID
+ resp, err := bucket.do("DELETE", imur.Key, params, options, nil, nil)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ return checkRespCode(resp.StatusCode, []int{http.StatusNoContent})
+}
+
+// ListUploadedParts lists the uploaded parts.
+//
+// imur the return value of InitiateMultipartUpload.
+//
+// ListUploadedPartsResponse the return value if it succeeds, only valid when error is nil.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) ListUploadedParts(imur InitiateMultipartUploadResult, options ...Option) (ListUploadedPartsResult, error) {
+ var out ListUploadedPartsResult
+ options = append(options, EncodingType("url"))
+
+ params := map[string]interface{}{}
+ params, err := getRawParams(options)
+ if err != nil {
+ return out, err
+ }
+
+ params["uploadId"] = imur.UploadID
+ resp, err := bucket.do("GET", imur.Key, params, nil, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ if err != nil {
+ return out, err
+ }
+ err = decodeListUploadedPartsResult(&out)
+ return out, err
+}
+
+// ListMultipartUploads lists all ongoing multipart upload tasks
+//
+// options listObject's filter. Prefix specifies the returned object's prefix; KeyMarker specifies the returned object's start point in lexicographic order;
+// MaxKeys specifies the max entries to return; Delimiter is the character for grouping object keys.
+//
+// ListMultipartUploadResponse the return value if it succeeds, only valid when error is nil.
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) ListMultipartUploads(options ...Option) (ListMultipartUploadResult, error) {
+ var out ListMultipartUploadResult
+
+ options = append(options, EncodingType("url"))
+ params, err := getRawParams(options)
+ if err != nil {
+ return out, err
+ }
+ params["uploads"] = nil
+
+ resp, err := bucket.do("GET", "", params, options, nil, nil)
+ if err != nil {
+ return out, err
+ }
+ defer resp.Body.Close()
+
+ err = xmlUnmarshal(resp.Body, &out)
+ if err != nil {
+ return out, err
+ }
+ err = decodeListMultipartUploadResult(&out)
+ return out, err
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/option.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/option.go
new file mode 100644
index 000000000..5952f8ae3
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/option.go
@@ -0,0 +1,433 @@
+package oss
+
+import (
+ "fmt"
+ "net/http"
+ "strconv"
+ "strings"
+ "time"
+)
+
+type optionType string
+
+const (
+ optionParam optionType = "HTTPParameter" // URL parameter
+ optionHTTP optionType = "HTTPHeader" // HTTP header
+ optionArg optionType = "FuncArgument" // Function argument
+)
+
+const (
+ deleteObjectsQuiet = "delete-objects-quiet"
+ routineNum = "x-routine-num"
+ checkpointConfig = "x-cp-config"
+ initCRC64 = "init-crc64"
+ progressListener = "x-progress-listener"
+ storageClass = "storage-class"
+)
+
+type (
+ optionValue struct {
+ Value interface{}
+ Type optionType
+ }
+
+ // Option HTTP option
+ Option func(map[string]optionValue) error
+)
+
+// ACL is an option to set X-Oss-Acl header
+func ACL(acl ACLType) Option {
+ return setHeader(HTTPHeaderOssACL, string(acl))
+}
+
+// ContentType is an option to set Content-Type header
+func ContentType(value string) Option {
+ return setHeader(HTTPHeaderContentType, value)
+}
+
+// ContentLength is an option to set Content-Length header
+func ContentLength(length int64) Option {
+ return setHeader(HTTPHeaderContentLength, strconv.FormatInt(length, 10))
+}
+
+// CacheControl is an option to set Cache-Control header
+func CacheControl(value string) Option {
+ return setHeader(HTTPHeaderCacheControl, value)
+}
+
+// ContentDisposition is an option to set Content-Disposition header
+func ContentDisposition(value string) Option {
+ return setHeader(HTTPHeaderContentDisposition, value)
+}
+
+// ContentEncoding is an option to set Content-Encoding header
+func ContentEncoding(value string) Option {
+ return setHeader(HTTPHeaderContentEncoding, value)
+}
+
+// ContentLanguage is an option to set Content-Language header
+func ContentLanguage(value string) Option {
+ return setHeader(HTTPHeaderContentLanguage, value)
+}
+
+// ContentMD5 is an option to set Content-MD5 header
+func ContentMD5(value string) Option {
+ return setHeader(HTTPHeaderContentMD5, value)
+}
+
+// Expires is an option to set Expires header
+func Expires(t time.Time) Option {
+ return setHeader(HTTPHeaderExpires, t.Format(http.TimeFormat))
+}
+
+// Meta is an option to set Meta header
+func Meta(key, value string) Option {
+ return setHeader(HTTPHeaderOssMetaPrefix+key, value)
+}
+
+// Range is an option to set Range header, [start, end]
+func Range(start, end int64) Option {
+ return setHeader(HTTPHeaderRange, fmt.Sprintf("bytes=%d-%d", start, end))
+}
+
+// NormalizedRange is an option to set Range header, such as 1024-2048 or 1024- or -2048
+func NormalizedRange(nr string) Option {
+ return setHeader(HTTPHeaderRange, fmt.Sprintf("bytes=%s", strings.TrimSpace(nr)))
+}
+
+// AcceptEncoding is an option to set Accept-Encoding header
+func AcceptEncoding(value string) Option {
+ return setHeader(HTTPHeaderAcceptEncoding, value)
+}
+
+// IfModifiedSince is an option to set If-Modified-Since header
+func IfModifiedSince(t time.Time) Option {
+ return setHeader(HTTPHeaderIfModifiedSince, t.Format(http.TimeFormat))
+}
+
+// IfUnmodifiedSince is an option to set If-Unmodified-Since header
+func IfUnmodifiedSince(t time.Time) Option {
+ return setHeader(HTTPHeaderIfUnmodifiedSince, t.Format(http.TimeFormat))
+}
+
+// IfMatch is an option to set If-Match header
+func IfMatch(value string) Option {
+ return setHeader(HTTPHeaderIfMatch, value)
+}
+
+// IfNoneMatch is an option to set IfNoneMatch header
+func IfNoneMatch(value string) Option {
+ return setHeader(HTTPHeaderIfNoneMatch, value)
+}
+
+// CopySource is an option to set X-Oss-Copy-Source header
+func CopySource(sourceBucket, sourceObject string) Option {
+ return setHeader(HTTPHeaderOssCopySource, "/"+sourceBucket+"/"+sourceObject)
+}
+
+// CopySourceRange is an option to set X-Oss-Copy-Source header
+func CopySourceRange(startPosition, partSize int64) Option {
+ val := "bytes=" + strconv.FormatInt(startPosition, 10) + "-" +
+ strconv.FormatInt((startPosition+partSize-1), 10)
+ return setHeader(HTTPHeaderOssCopySourceRange, val)
+}
+
+// CopySourceIfMatch is an option to set X-Oss-Copy-Source-If-Match header
+func CopySourceIfMatch(value string) Option {
+ return setHeader(HTTPHeaderOssCopySourceIfMatch, value)
+}
+
+// CopySourceIfNoneMatch is an option to set X-Oss-Copy-Source-If-None-Match header
+func CopySourceIfNoneMatch(value string) Option {
+ return setHeader(HTTPHeaderOssCopySourceIfNoneMatch, value)
+}
+
+// CopySourceIfModifiedSince is an option to set X-Oss-CopySource-If-Modified-Since header
+func CopySourceIfModifiedSince(t time.Time) Option {
+ return setHeader(HTTPHeaderOssCopySourceIfModifiedSince, t.Format(http.TimeFormat))
+}
+
+// CopySourceIfUnmodifiedSince is an option to set X-Oss-Copy-Source-If-Unmodified-Since header
+func CopySourceIfUnmodifiedSince(t time.Time) Option {
+ return setHeader(HTTPHeaderOssCopySourceIfUnmodifiedSince, t.Format(http.TimeFormat))
+}
+
+// MetadataDirective is an option to set X-Oss-Metadata-Directive header
+func MetadataDirective(directive MetadataDirectiveType) Option {
+ return setHeader(HTTPHeaderOssMetadataDirective, string(directive))
+}
+
+// ServerSideEncryption is an option to set X-Oss-Server-Side-Encryption header
+func ServerSideEncryption(value string) Option {
+ return setHeader(HTTPHeaderOssServerSideEncryption, value)
+}
+
+// ServerSideEncryptionKeyID is an option to set X-Oss-Server-Side-Encryption-Key-Id header
+func ServerSideEncryptionKeyID(value string) Option {
+ return setHeader(HTTPHeaderOssServerSideEncryptionKeyID, value)
+}
+
+// ObjectACL is an option to set X-Oss-Object-Acl header
+func ObjectACL(acl ACLType) Option {
+ return setHeader(HTTPHeaderOssObjectACL, string(acl))
+}
+
+// symlinkTarget is an option to set X-Oss-Symlink-Target
+func symlinkTarget(targetObjectKey string) Option {
+ return setHeader(HTTPHeaderOssSymlinkTarget, targetObjectKey)
+}
+
+// Origin is an option to set Origin header
+func Origin(value string) Option {
+ return setHeader(HTTPHeaderOrigin, value)
+}
+
+// ObjectStorageClass is an option to set the storage class of object
+func ObjectStorageClass(storageClass StorageClassType) Option {
+ return setHeader(HTTPHeaderOssStorageClass, string(storageClass))
+}
+
+// Callback is an option to set callback values
+func Callback(callback string) Option {
+ return setHeader(HTTPHeaderOssCallback, callback)
+}
+
+// CallbackVar is an option to set callback user defined values
+func CallbackVar(callbackVar string) Option {
+ return setHeader(HTTPHeaderOssCallbackVar, callbackVar)
+}
+
+// RequestPayer is an option to set payer who pay for the request
+func RequestPayer(payerType PayerType) Option {
+ return setHeader(HTTPHeaderOSSRequester, string(payerType))
+}
+
+// Delimiter is an option to set delimiler parameter
+func Delimiter(value string) Option {
+ return addParam("delimiter", value)
+}
+
+// Marker is an option to set marker parameter
+func Marker(value string) Option {
+ return addParam("marker", value)
+}
+
+// MaxKeys is an option to set maxkeys parameter
+func MaxKeys(value int) Option {
+ return addParam("max-keys", strconv.Itoa(value))
+}
+
+// Prefix is an option to set prefix parameter
+func Prefix(value string) Option {
+ return addParam("prefix", value)
+}
+
+// EncodingType is an option to set encoding-type parameter
+func EncodingType(value string) Option {
+ return addParam("encoding-type", value)
+}
+
+// MaxUploads is an option to set max-uploads parameter
+func MaxUploads(value int) Option {
+ return addParam("max-uploads", strconv.Itoa(value))
+}
+
+// KeyMarker is an option to set key-marker parameter
+func KeyMarker(value string) Option {
+ return addParam("key-marker", value)
+}
+
+// UploadIDMarker is an option to set upload-id-marker parameter
+func UploadIDMarker(value string) Option {
+ return addParam("upload-id-marker", value)
+}
+
+// MaxParts is an option to set max-parts parameter
+func MaxParts(value int) Option {
+ return addParam("max-parts", strconv.Itoa(value))
+}
+
+// PartNumberMarker is an option to set part-number-marker parameter
+func PartNumberMarker(value int) Option {
+ return addParam("part-number-marker", strconv.Itoa(value))
+}
+
+// DeleteObjectsQuiet false:DeleteObjects in verbose mode; true:DeleteObjects in quite mode. Default is false.
+func DeleteObjectsQuiet(isQuiet bool) Option {
+ return addArg(deleteObjectsQuiet, isQuiet)
+}
+
+// StorageClass bucket storage class
+func StorageClass(value StorageClassType) Option {
+ return addArg(storageClass, value)
+}
+
+// Checkpoint configuration
+type cpConfig struct {
+ IsEnable bool
+ FilePath string
+ DirPath string
+}
+
+// Checkpoint sets the isEnable flag and checkpoint file path for DownloadFile/UploadFile.
+func Checkpoint(isEnable bool, filePath string) Option {
+ return addArg(checkpointConfig, &cpConfig{IsEnable: isEnable, FilePath: filePath})
+}
+
+// CheckpointDir sets the isEnable flag and checkpoint dir path for DownloadFile/UploadFile.
+func CheckpointDir(isEnable bool, dirPath string) Option {
+ return addArg(checkpointConfig, &cpConfig{IsEnable: isEnable, DirPath: dirPath})
+}
+
+// Routines DownloadFile/UploadFile routine count
+func Routines(n int) Option {
+ return addArg(routineNum, n)
+}
+
+// InitCRC Init AppendObject CRC
+func InitCRC(initCRC uint64) Option {
+ return addArg(initCRC64, initCRC)
+}
+
+// Progress set progress listener
+func Progress(listener ProgressListener) Option {
+ return addArg(progressListener, listener)
+}
+
+// ResponseContentType is an option to set response-content-type param
+func ResponseContentType(value string) Option {
+ return addParam("response-content-type", value)
+}
+
+// ResponseContentLanguage is an option to set response-content-language param
+func ResponseContentLanguage(value string) Option {
+ return addParam("response-content-language", value)
+}
+
+// ResponseExpires is an option to set response-expires param
+func ResponseExpires(value string) Option {
+ return addParam("response-expires", value)
+}
+
+// ResponseCacheControl is an option to set response-cache-control param
+func ResponseCacheControl(value string) Option {
+ return addParam("response-cache-control", value)
+}
+
+// ResponseContentDisposition is an option to set response-content-disposition param
+func ResponseContentDisposition(value string) Option {
+ return addParam("response-content-disposition", value)
+}
+
+// ResponseContentEncoding is an option to set response-content-encoding param
+func ResponseContentEncoding(value string) Option {
+ return addParam("response-content-encoding", value)
+}
+
+// Process is an option to set x-oss-process param
+func Process(value string) Option {
+ return addParam("x-oss-process", value)
+}
+
+func setHeader(key string, value interface{}) Option {
+ return func(params map[string]optionValue) error {
+ if value == nil {
+ return nil
+ }
+ params[key] = optionValue{value, optionHTTP}
+ return nil
+ }
+}
+
+func addParam(key string, value interface{}) Option {
+ return func(params map[string]optionValue) error {
+ if value == nil {
+ return nil
+ }
+ params[key] = optionValue{value, optionParam}
+ return nil
+ }
+}
+
+func addArg(key string, value interface{}) Option {
+ return func(params map[string]optionValue) error {
+ if value == nil {
+ return nil
+ }
+ params[key] = optionValue{value, optionArg}
+ return nil
+ }
+}
+
+func handleOptions(headers map[string]string, options []Option) error {
+ params := map[string]optionValue{}
+ for _, option := range options {
+ if option != nil {
+ if err := option(params); err != nil {
+ return err
+ }
+ }
+ }
+
+ for k, v := range params {
+ if v.Type == optionHTTP {
+ headers[k] = v.Value.(string)
+ }
+ }
+ return nil
+}
+
+func getRawParams(options []Option) (map[string]interface{}, error) {
+ // Option
+ params := map[string]optionValue{}
+ for _, option := range options {
+ if option != nil {
+ if err := option(params); err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ paramsm := map[string]interface{}{}
+ // Serialize
+ for k, v := range params {
+ if v.Type == optionParam {
+ vs := params[k]
+ paramsm[k] = vs.Value.(string)
+ }
+ }
+
+ return paramsm, nil
+}
+
+func findOption(options []Option, param string, defaultVal interface{}) (interface{}, error) {
+ params := map[string]optionValue{}
+ for _, option := range options {
+ if option != nil {
+ if err := option(params); err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ if val, ok := params[param]; ok {
+ return val.Value, nil
+ }
+ return defaultVal, nil
+}
+
+func isOptionSet(options []Option, option string) (bool, interface{}, error) {
+ params := map[string]optionValue{}
+ for _, option := range options {
+ if option != nil {
+ if err := option(params); err != nil {
+ return false, nil, err
+ }
+ }
+ }
+
+ if val, ok := params[option]; ok {
+ return true, val.Value, nil
+ }
+ return false, nil, nil
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/progress.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/progress.go
new file mode 100644
index 000000000..b38d803fe
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/progress.go
@@ -0,0 +1,112 @@
+package oss
+
+import "io"
+
+// ProgressEventType defines transfer progress event type
+type ProgressEventType int
+
+const (
+ // TransferStartedEvent transfer started, set TotalBytes
+ TransferStartedEvent ProgressEventType = 1 + iota
+ // TransferDataEvent transfer data, set ConsumedBytes anmd TotalBytes
+ TransferDataEvent
+ // TransferCompletedEvent transfer completed
+ TransferCompletedEvent
+ // TransferFailedEvent transfer encounters an error
+ TransferFailedEvent
+)
+
+// ProgressEvent defines progress event
+type ProgressEvent struct {
+ ConsumedBytes int64
+ TotalBytes int64
+ EventType ProgressEventType
+}
+
+// ProgressListener listens progress change
+type ProgressListener interface {
+ ProgressChanged(event *ProgressEvent)
+}
+
+// -------------------- Private --------------------
+
+func newProgressEvent(eventType ProgressEventType, consumed, total int64) *ProgressEvent {
+ return &ProgressEvent{
+ ConsumedBytes: consumed,
+ TotalBytes: total,
+ EventType: eventType}
+}
+
+// publishProgress
+func publishProgress(listener ProgressListener, event *ProgressEvent) {
+ if listener != nil && event != nil {
+ listener.ProgressChanged(event)
+ }
+}
+
+type readerTracker struct {
+ completedBytes int64
+}
+
+type teeReader struct {
+ reader io.Reader
+ writer io.Writer
+ listener ProgressListener
+ consumedBytes int64
+ totalBytes int64
+ tracker *readerTracker
+}
+
+// TeeReader returns a Reader that writes to w what it reads from r.
+// All reads from r performed through it are matched with
+// corresponding writes to w. There is no internal buffering -
+// the write must complete before the read completes.
+// Any error encountered while writing is reported as a read error.
+func TeeReader(reader io.Reader, writer io.Writer, totalBytes int64, listener ProgressListener, tracker *readerTracker) io.ReadCloser {
+ return &teeReader{
+ reader: reader,
+ writer: writer,
+ listener: listener,
+ consumedBytes: 0,
+ totalBytes: totalBytes,
+ tracker: tracker,
+ }
+}
+
+func (t *teeReader) Read(p []byte) (n int, err error) {
+ n, err = t.reader.Read(p)
+
+ // Read encountered error
+ if err != nil && err != io.EOF {
+ event := newProgressEvent(TransferFailedEvent, t.consumedBytes, t.totalBytes)
+ publishProgress(t.listener, event)
+ }
+
+ if n > 0 {
+ t.consumedBytes += int64(n)
+ // CRC
+ if t.writer != nil {
+ if n, err := t.writer.Write(p[:n]); err != nil {
+ return n, err
+ }
+ }
+ // Progress
+ if t.listener != nil {
+ event := newProgressEvent(TransferDataEvent, t.consumedBytes, t.totalBytes)
+ publishProgress(t.listener, event)
+ }
+ // Track
+ if t.tracker != nil {
+ t.tracker.completedBytes = t.consumedBytes
+ }
+ }
+
+ return
+}
+
+func (t *teeReader) Close() error {
+ if rc, ok := t.reader.(io.ReadCloser); ok {
+ return rc.Close()
+ }
+ return nil
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_6.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_6.go
new file mode 100644
index 000000000..e6de4cdd2
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_6.go
@@ -0,0 +1,26 @@
+// +build !go1.7
+
+package oss
+
+import (
+ "net"
+ "net/http"
+)
+
+func newTransport(conn *Conn, config *Config) *http.Transport {
+ httpTimeOut := conn.config.HTTPTimeout
+ httpMaxConns := conn.config.HTTPMaxConns
+ // New Transport
+ transport := &http.Transport{
+ Dial: func(netw, addr string) (net.Conn, error) {
+ conn, err := net.DialTimeout(netw, addr, httpTimeOut.ConnectTimeout)
+ if err != nil {
+ return nil, err
+ }
+ return newTimeoutConn(conn, httpTimeOut.ReadWriteTimeout, httpTimeOut.LongTimeout), nil
+ },
+ MaxIdleConnsPerHost: httpMaxConns.MaxIdleConnsPerHost,
+ ResponseHeaderTimeout: httpTimeOut.HeaderTimeout,
+ }
+ return transport
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_7.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_7.go
new file mode 100644
index 000000000..006ea47a0
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_7.go
@@ -0,0 +1,28 @@
+// +build go1.7
+
+package oss
+
+import (
+ "net"
+ "net/http"
+)
+
+func newTransport(conn *Conn, config *Config) *http.Transport {
+ httpTimeOut := conn.config.HTTPTimeout
+ httpMaxConns := conn.config.HTTPMaxConns
+ // New Transport
+ transport := &http.Transport{
+ Dial: func(netw, addr string) (net.Conn, error) {
+ conn, err := net.DialTimeout(netw, addr, httpTimeOut.ConnectTimeout)
+ if err != nil {
+ return nil, err
+ }
+ return newTimeoutConn(conn, httpTimeOut.ReadWriteTimeout, httpTimeOut.LongTimeout), nil
+ },
+ MaxIdleConns: httpMaxConns.MaxIdleConns,
+ MaxIdleConnsPerHost: httpMaxConns.MaxIdleConnsPerHost,
+ IdleConnTimeout: httpTimeOut.IdleConnTimeout,
+ ResponseHeaderTimeout: httpTimeOut.HeaderTimeout,
+ }
+ return transport
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/type.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/type.go
new file mode 100644
index 000000000..794f28231
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/type.go
@@ -0,0 +1,468 @@
+package oss
+
+import (
+ "encoding/xml"
+ "net/url"
+ "time"
+)
+
+// ListBucketsResult defines the result object from ListBuckets request
+type ListBucketsResult struct {
+ XMLName xml.Name `xml:"ListAllMyBucketsResult"`
+ Prefix string `xml:"Prefix"` // The prefix in this query
+ Marker string `xml:"Marker"` // The marker filter
+ MaxKeys int `xml:"MaxKeys"` // The max entry count to return. This information is returned when IsTruncated is true.
+ IsTruncated bool `xml:"IsTruncated"` // Flag true means there's remaining buckets to return.
+ NextMarker string `xml:"NextMarker"` // The marker filter for the next list call
+ Owner Owner `xml:"Owner"` // The owner information
+ Buckets []BucketProperties `xml:"Buckets>Bucket"` // The bucket list
+}
+
+// BucketProperties defines bucket properties
+type BucketProperties struct {
+ XMLName xml.Name `xml:"Bucket"`
+ Name string `xml:"Name"` // Bucket name
+ Location string `xml:"Location"` // Bucket datacenter
+ CreationDate time.Time `xml:"CreationDate"` // Bucket create time
+ StorageClass string `xml:"StorageClass"` // Bucket storage class
+}
+
+// GetBucketACLResult defines GetBucketACL request's result
+type GetBucketACLResult struct {
+ XMLName xml.Name `xml:"AccessControlPolicy"`
+ ACL string `xml:"AccessControlList>Grant"` // Bucket ACL
+ Owner Owner `xml:"Owner"` // Bucket owner
+}
+
+// LifecycleConfiguration is the Bucket Lifecycle configuration
+type LifecycleConfiguration struct {
+ XMLName xml.Name `xml:"LifecycleConfiguration"`
+ Rules []LifecycleRule `xml:"Rule"`
+}
+
+// LifecycleRule defines Lifecycle rules
+type LifecycleRule struct {
+ XMLName xml.Name `xml:"Rule"`
+ ID string `xml:"ID"` // The rule ID
+ Prefix string `xml:"Prefix"` // The object key prefix
+ Status string `xml:"Status"` // The rule status (enabled or not)
+ Expiration LifecycleExpiration `xml:"Expiration"` // The expiration property
+}
+
+// LifecycleExpiration defines the rule's expiration property
+type LifecycleExpiration struct {
+ XMLName xml.Name `xml:"Expiration"`
+ Days int `xml:"Days,omitempty"` // Relative expiration time: The expiration time in days after the last modified time
+ Date time.Time `xml:"Date,omitempty"` // Absolute expiration time: The expiration time in date.
+}
+
+type lifecycleXML struct {
+ XMLName xml.Name `xml:"LifecycleConfiguration"`
+ Rules []lifecycleRule `xml:"Rule"`
+}
+
+type lifecycleRule struct {
+ XMLName xml.Name `xml:"Rule"`
+ ID string `xml:"ID"`
+ Prefix string `xml:"Prefix"`
+ Status string `xml:"Status"`
+ Expiration lifecycleExpiration `xml:"Expiration"`
+}
+
+type lifecycleExpiration struct {
+ XMLName xml.Name `xml:"Expiration"`
+ Days int `xml:"Days,omitempty"`
+ Date string `xml:"Date,omitempty"`
+}
+
+const expirationDateFormat = "2006-01-02T15:04:05.000Z"
+
+func convLifecycleRule(rules []LifecycleRule) []lifecycleRule {
+ rs := []lifecycleRule{}
+ for _, rule := range rules {
+ r := lifecycleRule{}
+ r.ID = rule.ID
+ r.Prefix = rule.Prefix
+ r.Status = rule.Status
+ if rule.Expiration.Date.IsZero() {
+ r.Expiration.Days = rule.Expiration.Days
+ } else {
+ r.Expiration.Date = rule.Expiration.Date.Format(expirationDateFormat)
+ }
+ rs = append(rs, r)
+ }
+ return rs
+}
+
+// BuildLifecycleRuleByDays builds a lifecycle rule with specified expiration days
+func BuildLifecycleRuleByDays(id, prefix string, status bool, days int) LifecycleRule {
+ var statusStr = "Enabled"
+ if !status {
+ statusStr = "Disabled"
+ }
+ return LifecycleRule{ID: id, Prefix: prefix, Status: statusStr,
+ Expiration: LifecycleExpiration{Days: days}}
+}
+
+// BuildLifecycleRuleByDate builds a lifecycle rule with specified expiration time.
+func BuildLifecycleRuleByDate(id, prefix string, status bool, year, month, day int) LifecycleRule {
+ var statusStr = "Enabled"
+ if !status {
+ statusStr = "Disabled"
+ }
+ date := time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC)
+ return LifecycleRule{ID: id, Prefix: prefix, Status: statusStr,
+ Expiration: LifecycleExpiration{Date: date}}
+}
+
+// GetBucketLifecycleResult defines GetBucketLifecycle's result object
+type GetBucketLifecycleResult LifecycleConfiguration
+
+// RefererXML defines Referer configuration
+type RefererXML struct {
+ XMLName xml.Name `xml:"RefererConfiguration"`
+ AllowEmptyReferer bool `xml:"AllowEmptyReferer"` // Allow empty referrer
+ RefererList []string `xml:"RefererList>Referer"` // Referer whitelist
+}
+
+// GetBucketRefererResult defines result object for GetBucketReferer request
+type GetBucketRefererResult RefererXML
+
+// LoggingXML defines logging configuration
+type LoggingXML struct {
+ XMLName xml.Name `xml:"BucketLoggingStatus"`
+ LoggingEnabled LoggingEnabled `xml:"LoggingEnabled"` // The logging configuration information
+}
+
+type loggingXMLEmpty struct {
+ XMLName xml.Name `xml:"BucketLoggingStatus"`
+}
+
+// LoggingEnabled defines the logging configuration information
+type LoggingEnabled struct {
+ XMLName xml.Name `xml:"LoggingEnabled"`
+ TargetBucket string `xml:"TargetBucket"` // The bucket name for storing the log files
+ TargetPrefix string `xml:"TargetPrefix"` // The log file prefix
+}
+
+// GetBucketLoggingResult defines the result from GetBucketLogging request
+type GetBucketLoggingResult LoggingXML
+
+// WebsiteXML defines Website configuration
+type WebsiteXML struct {
+ XMLName xml.Name `xml:"WebsiteConfiguration"`
+ IndexDocument IndexDocument `xml:"IndexDocument"` // The index page
+ ErrorDocument ErrorDocument `xml:"ErrorDocument"` // The error page
+}
+
+// IndexDocument defines the index page info
+type IndexDocument struct {
+ XMLName xml.Name `xml:"IndexDocument"`
+ Suffix string `xml:"Suffix"` // The file name for the index page
+}
+
+// ErrorDocument defines the 404 error page info
+type ErrorDocument struct {
+ XMLName xml.Name `xml:"ErrorDocument"`
+ Key string `xml:"Key"` // 404 error file name
+}
+
+// GetBucketWebsiteResult defines the result from GetBucketWebsite request.
+type GetBucketWebsiteResult WebsiteXML
+
+// CORSXML defines CORS configuration
+type CORSXML struct {
+ XMLName xml.Name `xml:"CORSConfiguration"`
+ CORSRules []CORSRule `xml:"CORSRule"` // CORS rules
+}
+
+// CORSRule defines CORS rules
+type CORSRule struct {
+ XMLName xml.Name `xml:"CORSRule"`
+ AllowedOrigin []string `xml:"AllowedOrigin"` // Allowed origins. By default it's wildcard '*'
+ AllowedMethod []string `xml:"AllowedMethod"` // Allowed methods
+ AllowedHeader []string `xml:"AllowedHeader"` // Allowed headers
+ ExposeHeader []string `xml:"ExposeHeader"` // Allowed response headers
+ MaxAgeSeconds int `xml:"MaxAgeSeconds"` // Max cache ages in seconds
+}
+
+// GetBucketCORSResult defines the result from GetBucketCORS request.
+type GetBucketCORSResult CORSXML
+
+// GetBucketInfoResult defines the result from GetBucketInfo request.
+type GetBucketInfoResult struct {
+ XMLName xml.Name `xml:"BucketInfo"`
+ BucketInfo BucketInfo `xml:"Bucket"`
+}
+
+// BucketInfo defines Bucket information
+type BucketInfo struct {
+ XMLName xml.Name `xml:"Bucket"`
+ Name string `xml:"Name"` // Bucket name
+ Location string `xml:"Location"` // Bucket datacenter
+ CreationDate time.Time `xml:"CreationDate"` // Bucket creation time
+ ExtranetEndpoint string `xml:"ExtranetEndpoint"` // Bucket external endpoint
+ IntranetEndpoint string `xml:"IntranetEndpoint"` // Bucket internal endpoint
+ ACL string `xml:"AccessControlList>Grant"` // Bucket ACL
+ Owner Owner `xml:"Owner"` // Bucket owner
+ StorageClass string `xml:"StorageClass"` // Bucket storage class
+}
+
+// ListObjectsResult defines the result from ListObjects request
+type ListObjectsResult struct {
+ XMLName xml.Name `xml:"ListBucketResult"`
+ Prefix string `xml:"Prefix"` // The object prefix
+ Marker string `xml:"Marker"` // The marker filter.
+ MaxKeys int `xml:"MaxKeys"` // Max keys to return
+ Delimiter string `xml:"Delimiter"` // The delimiter for grouping objects' name
+ IsTruncated bool `xml:"IsTruncated"` // Flag indicates if all results are returned (when it's false)
+ NextMarker string `xml:"NextMarker"` // The start point of the next query
+ Objects []ObjectProperties `xml:"Contents"` // Object list
+ CommonPrefixes []string `xml:"CommonPrefixes>Prefix"` // You can think of commonprefixes as "folders" whose names end with the delimiter
+}
+
+// ObjectProperties defines Objecct properties
+type ObjectProperties struct {
+ XMLName xml.Name `xml:"Contents"`
+ Key string `xml:"Key"` // Object key
+ Type string `xml:"Type"` // Object type
+ Size int64 `xml:"Size"` // Object size
+ ETag string `xml:"ETag"` // Object ETag
+ Owner Owner `xml:"Owner"` // Object owner information
+ LastModified time.Time `xml:"LastModified"` // Object last modified time
+ StorageClass string `xml:"StorageClass"` // Object storage class (Standard, IA, Archive)
+}
+
+// Owner defines Bucket/Object's owner
+type Owner struct {
+ XMLName xml.Name `xml:"Owner"`
+ ID string `xml:"ID"` // Owner ID
+ DisplayName string `xml:"DisplayName"` // Owner's display name
+}
+
+// CopyObjectResult defines result object of CopyObject
+type CopyObjectResult struct {
+ XMLName xml.Name `xml:"CopyObjectResult"`
+ LastModified time.Time `xml:"LastModified"` // New object's last modified time.
+ ETag string `xml:"ETag"` // New object's ETag
+}
+
+// GetObjectACLResult defines result of GetObjectACL request
+type GetObjectACLResult GetBucketACLResult
+
+type deleteXML struct {
+ XMLName xml.Name `xml:"Delete"`
+ Objects []DeleteObject `xml:"Object"` // Objects to delete
+ Quiet bool `xml:"Quiet"` // Flag of quiet mode.
+}
+
+// DeleteObject defines the struct for deleting object
+type DeleteObject struct {
+ XMLName xml.Name `xml:"Object"`
+ Key string `xml:"Key"` // Object name
+}
+
+// DeleteObjectsResult defines result of DeleteObjects request
+type DeleteObjectsResult struct {
+ XMLName xml.Name `xml:"DeleteResult"`
+ DeletedObjects []string `xml:"Deleted>Key"` // Deleted object list
+}
+
+// InitiateMultipartUploadResult defines result of InitiateMultipartUpload request
+type InitiateMultipartUploadResult struct {
+ XMLName xml.Name `xml:"InitiateMultipartUploadResult"`
+ Bucket string `xml:"Bucket"` // Bucket name
+ Key string `xml:"Key"` // Object name to upload
+ UploadID string `xml:"UploadId"` // Generated UploadId
+}
+
+// UploadPart defines the upload/copy part
+type UploadPart struct {
+ XMLName xml.Name `xml:"Part"`
+ PartNumber int `xml:"PartNumber"` // Part number
+ ETag string `xml:"ETag"` // ETag value of the part's data
+}
+
+type uploadParts []UploadPart
+
+func (slice uploadParts) Len() int {
+ return len(slice)
+}
+
+func (slice uploadParts) Less(i, j int) bool {
+ return slice[i].PartNumber < slice[j].PartNumber
+}
+
+func (slice uploadParts) Swap(i, j int) {
+ slice[i], slice[j] = slice[j], slice[i]
+}
+
+// UploadPartCopyResult defines result object of multipart copy request.
+type UploadPartCopyResult struct {
+ XMLName xml.Name `xml:"CopyPartResult"`
+ LastModified time.Time `xml:"LastModified"` // Last modified time
+ ETag string `xml:"ETag"` // ETag
+}
+
+type completeMultipartUploadXML struct {
+ XMLName xml.Name `xml:"CompleteMultipartUpload"`
+ Part []UploadPart `xml:"Part"`
+}
+
+// CompleteMultipartUploadResult defines result object of CompleteMultipartUploadRequest
+type CompleteMultipartUploadResult struct {
+ XMLName xml.Name `xml:"CompleteMultipartUploadResult"`
+ Location string `xml:"Location"` // Object URL
+ Bucket string `xml:"Bucket"` // Bucket name
+ ETag string `xml:"ETag"` // Object ETag
+ Key string `xml:"Key"` // Object name
+}
+
+// ListUploadedPartsResult defines result object of ListUploadedParts
+type ListUploadedPartsResult struct {
+ XMLName xml.Name `xml:"ListPartsResult"`
+ Bucket string `xml:"Bucket"` // Bucket name
+ Key string `xml:"Key"` // Object name
+ UploadID string `xml:"UploadId"` // Upload ID
+ NextPartNumberMarker string `xml:"NextPartNumberMarker"` // Next part number
+ MaxParts int `xml:"MaxParts"` // Max parts count
+ IsTruncated bool `xml:"IsTruncated"` // Flag indicates all entries returned.false: all entries returned.
+ UploadedParts []UploadedPart `xml:"Part"` // Uploaded parts
+}
+
+// UploadedPart defines uploaded part
+type UploadedPart struct {
+ XMLName xml.Name `xml:"Part"`
+ PartNumber int `xml:"PartNumber"` // Part number
+ LastModified time.Time `xml:"LastModified"` // Last modified time
+ ETag string `xml:"ETag"` // ETag cache
+ Size int `xml:"Size"` // Part size
+}
+
+// ListMultipartUploadResult defines result object of ListMultipartUpload
+type ListMultipartUploadResult struct {
+ XMLName xml.Name `xml:"ListMultipartUploadsResult"`
+ Bucket string `xml:"Bucket"` // Bucket name
+ Delimiter string `xml:"Delimiter"` // Delimiter for grouping object.
+ Prefix string `xml:"Prefix"` // Object prefix
+ KeyMarker string `xml:"KeyMarker"` // Object key marker
+ UploadIDMarker string `xml:"UploadIdMarker"` // UploadId marker
+ NextKeyMarker string `xml:"NextKeyMarker"` // Next key marker, if not all entries returned.
+ NextUploadIDMarker string `xml:"NextUploadIdMarker"` // Next uploadId marker, if not all entries returned.
+ MaxUploads int `xml:"MaxUploads"` // Max uploads to return
+ IsTruncated bool `xml:"IsTruncated"` // Flag indicates all entries are returned.
+ Uploads []UncompletedUpload `xml:"Upload"` // Ongoing uploads (not completed, not aborted)
+ CommonPrefixes []string `xml:"CommonPrefixes>Prefix"` // Common prefixes list.
+}
+
+// UncompletedUpload structure wraps an uncompleted upload task
+type UncompletedUpload struct {
+ XMLName xml.Name `xml:"Upload"`
+ Key string `xml:"Key"` // Object name
+ UploadID string `xml:"UploadId"` // The UploadId
+ Initiated time.Time `xml:"Initiated"` // Initialization time in the format such as 2012-02-23T04:18:23.000Z
+}
+
+// ProcessObjectResult defines result object of ProcessObject
+type ProcessObjectResult struct {
+ Bucket string `json:"bucket"`
+ FileSize int `json:"fileSize"`
+ Object string `json:"object"`
+ Status string `json:"status"`
+}
+
+// decodeDeleteObjectsResult decodes deleting objects result in URL encoding
+func decodeDeleteObjectsResult(result *DeleteObjectsResult) error {
+ var err error
+ for i := 0; i < len(result.DeletedObjects); i++ {
+ result.DeletedObjects[i], err = url.QueryUnescape(result.DeletedObjects[i])
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// decodeListObjectsResult decodes list objects result in URL encoding
+func decodeListObjectsResult(result *ListObjectsResult) error {
+ var err error
+ result.Prefix, err = url.QueryUnescape(result.Prefix)
+ if err != nil {
+ return err
+ }
+ result.Marker, err = url.QueryUnescape(result.Marker)
+ if err != nil {
+ return err
+ }
+ result.Delimiter, err = url.QueryUnescape(result.Delimiter)
+ if err != nil {
+ return err
+ }
+ result.NextMarker, err = url.QueryUnescape(result.NextMarker)
+ if err != nil {
+ return err
+ }
+ for i := 0; i < len(result.Objects); i++ {
+ result.Objects[i].Key, err = url.QueryUnescape(result.Objects[i].Key)
+ if err != nil {
+ return err
+ }
+ }
+ for i := 0; i < len(result.CommonPrefixes); i++ {
+ result.CommonPrefixes[i], err = url.QueryUnescape(result.CommonPrefixes[i])
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// decodeListUploadedPartsResult decodes
+func decodeListUploadedPartsResult(result *ListUploadedPartsResult) error {
+ var err error
+ result.Key, err = url.QueryUnescape(result.Key)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+// decodeListMultipartUploadResult decodes list multipart upload result in URL encoding
+func decodeListMultipartUploadResult(result *ListMultipartUploadResult) error {
+ var err error
+ result.Prefix, err = url.QueryUnescape(result.Prefix)
+ if err != nil {
+ return err
+ }
+ result.Delimiter, err = url.QueryUnescape(result.Delimiter)
+ if err != nil {
+ return err
+ }
+ result.KeyMarker, err = url.QueryUnescape(result.KeyMarker)
+ if err != nil {
+ return err
+ }
+ result.NextKeyMarker, err = url.QueryUnescape(result.NextKeyMarker)
+ if err != nil {
+ return err
+ }
+ for i := 0; i < len(result.Uploads); i++ {
+ result.Uploads[i].Key, err = url.QueryUnescape(result.Uploads[i].Key)
+ if err != nil {
+ return err
+ }
+ }
+ for i := 0; i < len(result.CommonPrefixes); i++ {
+ result.CommonPrefixes[i], err = url.QueryUnescape(result.CommonPrefixes[i])
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// createBucketConfiguration defines the configuration for creating a bucket.
+type createBucketConfiguration struct {
+ XMLName xml.Name `xml:"CreateBucketConfiguration"`
+ StorageClass StorageClassType `xml:"StorageClass,omitempty"`
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/upload.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/upload.go
new file mode 100644
index 000000000..80371447d
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/upload.go
@@ -0,0 +1,526 @@
+package oss
+
+import (
+ "crypto/md5"
+ "encoding/base64"
+ "encoding/hex"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "time"
+)
+
+// UploadFile is multipart file upload.
+//
+// objectKey the object name.
+// filePath the local file path to upload.
+// partSize the part size in byte.
+// options the options for uploading object.
+//
+// error it's nil if the operation succeeds, otherwise it's an error object.
+//
+func (bucket Bucket) UploadFile(objectKey, filePath string, partSize int64, options ...Option) error {
+ if partSize < MinPartSize || partSize > MaxPartSize {
+ return errors.New("oss: part size invalid range (100KB, 5GB]")
+ }
+
+ cpConf := getCpConfig(options)
+ routines := getRoutines(options)
+
+ if cpConf != nil && cpConf.IsEnable {
+ cpFilePath := getUploadCpFilePath(cpConf, filePath, bucket.BucketName, objectKey)
+ if cpFilePath != "" {
+ return bucket.uploadFileWithCp(objectKey, filePath, partSize, options, cpFilePath, routines)
+ }
+ }
+
+ return bucket.uploadFile(objectKey, filePath, partSize, options, routines)
+}
+
+func getUploadCpFilePath(cpConf *cpConfig, srcFile, destBucket, destObject string) string {
+ if cpConf.FilePath == "" && cpConf.DirPath != "" {
+ dest := fmt.Sprintf("oss://%v/%v", destBucket, destObject)
+ absPath, _ := filepath.Abs(srcFile)
+ cpFileName := getCpFileName(absPath, dest)
+ cpConf.FilePath = cpConf.DirPath + string(os.PathSeparator) + cpFileName
+ }
+ return cpConf.FilePath
+}
+
+// ----- concurrent upload without checkpoint -----
+
+// getCpConfig gets checkpoint configuration
+func getCpConfig(options []Option) *cpConfig {
+ cpcOpt, err := findOption(options, checkpointConfig, nil)
+ if err != nil || cpcOpt == nil {
+ return nil
+ }
+
+ return cpcOpt.(*cpConfig)
+}
+
+// getCpFileName return the name of the checkpoint file
+func getCpFileName(src, dest string) string {
+ md5Ctx := md5.New()
+ md5Ctx.Write([]byte(src))
+ srcCheckSum := hex.EncodeToString(md5Ctx.Sum(nil))
+
+ md5Ctx.Reset()
+ md5Ctx.Write([]byte(dest))
+ destCheckSum := hex.EncodeToString(md5Ctx.Sum(nil))
+
+ return fmt.Sprintf("%v-%v.cp", srcCheckSum, destCheckSum)
+}
+
+// getRoutines gets the routine count. by default it's 1.
+func getRoutines(options []Option) int {
+ rtnOpt, err := findOption(options, routineNum, nil)
+ if err != nil || rtnOpt == nil {
+ return 1
+ }
+
+ rs := rtnOpt.(int)
+ if rs < 1 {
+ rs = 1
+ } else if rs > 100 {
+ rs = 100
+ }
+
+ return rs
+}
+
+// getPayer return the payer of the request
+func getPayer(options []Option) string {
+ payerOpt, err := findOption(options, HTTPHeaderOSSRequester, nil)
+ if err != nil || payerOpt == nil {
+ return ""
+ }
+
+ return payerOpt.(string)
+}
+
+// getProgressListener gets the progress callback
+func getProgressListener(options []Option) ProgressListener {
+ isSet, listener, _ := isOptionSet(options, progressListener)
+ if !isSet {
+ return nil
+ }
+ return listener.(ProgressListener)
+}
+
+// uploadPartHook is for testing usage
+type uploadPartHook func(id int, chunk FileChunk) error
+
+var uploadPartHooker uploadPartHook = defaultUploadPart
+
+func defaultUploadPart(id int, chunk FileChunk) error {
+ return nil
+}
+
+// workerArg defines worker argument structure
+type workerArg struct {
+ bucket *Bucket
+ filePath string
+ imur InitiateMultipartUploadResult
+ options []Option
+ hook uploadPartHook
+}
+
+// worker is the worker coroutine function
+func worker(id int, arg workerArg, jobs <-chan FileChunk, results chan<- UploadPart, failed chan<- error, die <-chan bool) {
+ for chunk := range jobs {
+ if err := arg.hook(id, chunk); err != nil {
+ failed <- err
+ break
+ }
+ part, err := arg.bucket.UploadPartFromFile(arg.imur, arg.filePath, chunk.Offset, chunk.Size, chunk.Number, arg.options...)
+ if err != nil {
+ failed <- err
+ break
+ }
+ select {
+ case <-die:
+ return
+ default:
+ }
+ results <- part
+ }
+}
+
+// scheduler function
+func scheduler(jobs chan FileChunk, chunks []FileChunk) {
+ for _, chunk := range chunks {
+ jobs <- chunk
+ }
+ close(jobs)
+}
+
+func getTotalBytes(chunks []FileChunk) int64 {
+ var tb int64
+ for _, chunk := range chunks {
+ tb += chunk.Size
+ }
+ return tb
+}
+
+// uploadFile is a concurrent upload, without checkpoint
+func (bucket Bucket) uploadFile(objectKey, filePath string, partSize int64, options []Option, routines int) error {
+ listener := getProgressListener(options)
+
+ chunks, err := SplitFileByPartSize(filePath, partSize)
+ if err != nil {
+ return err
+ }
+
+ payerOptions := []Option{}
+ payer := getPayer(options)
+ if payer != "" {
+ payerOptions = append(payerOptions, RequestPayer(PayerType(payer)))
+ }
+
+ // Initialize the multipart upload
+ imur, err := bucket.InitiateMultipartUpload(objectKey, options...)
+ if err != nil {
+ return err
+ }
+
+ jobs := make(chan FileChunk, len(chunks))
+ results := make(chan UploadPart, len(chunks))
+ failed := make(chan error)
+ die := make(chan bool)
+
+ var completedBytes int64
+ totalBytes := getTotalBytes(chunks)
+ event := newProgressEvent(TransferStartedEvent, 0, totalBytes)
+ publishProgress(listener, event)
+
+ // Start the worker coroutine
+ arg := workerArg{&bucket, filePath, imur, payerOptions, uploadPartHooker}
+ for w := 1; w <= routines; w++ {
+ go worker(w, arg, jobs, results, failed, die)
+ }
+
+ // Schedule the jobs
+ go scheduler(jobs, chunks)
+
+ // Waiting for the upload finished
+ completed := 0
+ parts := make([]UploadPart, len(chunks))
+ for completed < len(chunks) {
+ select {
+ case part := <-results:
+ completed++
+ parts[part.PartNumber-1] = part
+ completedBytes += chunks[part.PartNumber-1].Size
+ event = newProgressEvent(TransferDataEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+ case err := <-failed:
+ close(die)
+ event = newProgressEvent(TransferFailedEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+ bucket.AbortMultipartUpload(imur, payerOptions...)
+ return err
+ }
+
+ if completed >= len(chunks) {
+ break
+ }
+ }
+
+ event = newProgressEvent(TransferStartedEvent, completedBytes, totalBytes)
+ publishProgress(listener, event)
+
+ // Complete the multpart upload
+ _, err = bucket.CompleteMultipartUpload(imur, parts, payerOptions...)
+ if err != nil {
+ bucket.AbortMultipartUpload(imur, payerOptions...)
+ return err
+ }
+ return nil
+}
+
+// ----- concurrent upload with checkpoint -----
+const uploadCpMagic = "FE8BB4EA-B593-4FAC-AD7A-2459A36E2E62"
+
+type uploadCheckpoint struct {
+ Magic string // Magic
+ MD5 string // Checkpoint file content's MD5
+ FilePath string // Local file path
+ FileStat cpStat // File state
+ ObjectKey string // Key
+ UploadID string // Upload ID
+ Parts []cpPart // All parts of the local file
+}
+
+type cpStat struct {
+ Size int64 // File size
+ LastModified time.Time // File's last modified time
+ MD5 string // Local file's MD5
+}
+
+type cpPart struct {
+ Chunk FileChunk // File chunk
+ Part UploadPart // Uploaded part
+ IsCompleted bool // Upload complete flag
+}
+
+// isValid checks if the uploaded data is valid---it's valid when the file is not updated and the checkpoint data is valid.
+func (cp uploadCheckpoint) isValid(filePath string) (bool, error) {
+ // Compare the CP's magic number and MD5.
+ cpb := cp
+ cpb.MD5 = ""
+ js, _ := json.Marshal(cpb)
+ sum := md5.Sum(js)
+ b64 := base64.StdEncoding.EncodeToString(sum[:])
+
+ if cp.Magic != uploadCpMagic || b64 != cp.MD5 {
+ return false, nil
+ }
+
+ // Make sure if the local file is updated.
+ fd, err := os.Open(filePath)
+ if err != nil {
+ return false, err
+ }
+ defer fd.Close()
+
+ st, err := fd.Stat()
+ if err != nil {
+ return false, err
+ }
+
+ md, err := calcFileMD5(filePath)
+ if err != nil {
+ return false, err
+ }
+
+ // Compare the file size, file's last modified time and file's MD5
+ if cp.FileStat.Size != st.Size() ||
+ cp.FileStat.LastModified != st.ModTime() ||
+ cp.FileStat.MD5 != md {
+ return false, nil
+ }
+
+ return true, nil
+}
+
+// load loads from the file
+func (cp *uploadCheckpoint) load(filePath string) error {
+ contents, err := ioutil.ReadFile(filePath)
+ if err != nil {
+ return err
+ }
+
+ err = json.Unmarshal(contents, cp)
+ return err
+}
+
+// dump dumps to the local file
+func (cp *uploadCheckpoint) dump(filePath string) error {
+ bcp := *cp
+
+ // Calculate MD5
+ bcp.MD5 = ""
+ js, err := json.Marshal(bcp)
+ if err != nil {
+ return err
+ }
+ sum := md5.Sum(js)
+ b64 := base64.StdEncoding.EncodeToString(sum[:])
+ bcp.MD5 = b64
+
+ // Serialization
+ js, err = json.Marshal(bcp)
+ if err != nil {
+ return err
+ }
+
+ // Dump
+ return ioutil.WriteFile(filePath, js, FilePermMode)
+}
+
+// updatePart updates the part status
+func (cp *uploadCheckpoint) updatePart(part UploadPart) {
+ cp.Parts[part.PartNumber-1].Part = part
+ cp.Parts[part.PartNumber-1].IsCompleted = true
+}
+
+// todoParts returns unfinished parts
+func (cp *uploadCheckpoint) todoParts() []FileChunk {
+ fcs := []FileChunk{}
+ for _, part := range cp.Parts {
+ if !part.IsCompleted {
+ fcs = append(fcs, part.Chunk)
+ }
+ }
+ return fcs
+}
+
+// allParts returns all parts
+func (cp *uploadCheckpoint) allParts() []UploadPart {
+ ps := []UploadPart{}
+ for _, part := range cp.Parts {
+ ps = append(ps, part.Part)
+ }
+ return ps
+}
+
+// getCompletedBytes returns completed bytes count
+func (cp *uploadCheckpoint) getCompletedBytes() int64 {
+ var completedBytes int64
+ for _, part := range cp.Parts {
+ if part.IsCompleted {
+ completedBytes += part.Chunk.Size
+ }
+ }
+ return completedBytes
+}
+
+// calcFileMD5 calculates the MD5 for the specified local file
+func calcFileMD5(filePath string) (string, error) {
+ return "", nil
+}
+
+// prepare initializes the multipart upload
+func prepare(cp *uploadCheckpoint, objectKey, filePath string, partSize int64, bucket *Bucket, options []Option) error {
+ // CP
+ cp.Magic = uploadCpMagic
+ cp.FilePath = filePath
+ cp.ObjectKey = objectKey
+
+ // Local file
+ fd, err := os.Open(filePath)
+ if err != nil {
+ return err
+ }
+ defer fd.Close()
+
+ st, err := fd.Stat()
+ if err != nil {
+ return err
+ }
+ cp.FileStat.Size = st.Size()
+ cp.FileStat.LastModified = st.ModTime()
+ md, err := calcFileMD5(filePath)
+ if err != nil {
+ return err
+ }
+ cp.FileStat.MD5 = md
+
+ // Chunks
+ parts, err := SplitFileByPartSize(filePath, partSize)
+ if err != nil {
+ return err
+ }
+
+ cp.Parts = make([]cpPart, len(parts))
+ for i, part := range parts {
+ cp.Parts[i].Chunk = part
+ cp.Parts[i].IsCompleted = false
+ }
+
+ // Init load
+ imur, err := bucket.InitiateMultipartUpload(objectKey, options...)
+ if err != nil {
+ return err
+ }
+ cp.UploadID = imur.UploadID
+
+ return nil
+}
+
+// complete completes the multipart upload and deletes the local CP files
+func complete(cp *uploadCheckpoint, bucket *Bucket, parts []UploadPart, cpFilePath string, options []Option) error {
+ imur := InitiateMultipartUploadResult{Bucket: bucket.BucketName,
+ Key: cp.ObjectKey, UploadID: cp.UploadID}
+ _, err := bucket.CompleteMultipartUpload(imur, parts, options...)
+ if err != nil {
+ return err
+ }
+ os.Remove(cpFilePath)
+ return err
+}
+
+// uploadFileWithCp handles concurrent upload with checkpoint
+func (bucket Bucket) uploadFileWithCp(objectKey, filePath string, partSize int64, options []Option, cpFilePath string, routines int) error {
+ listener := getProgressListener(options)
+
+ payerOptions := []Option{}
+ payer := getPayer(options)
+ if payer != "" {
+ payerOptions = append(payerOptions, RequestPayer(PayerType(payer)))
+ }
+
+ // Load CP data
+ ucp := uploadCheckpoint{}
+ err := ucp.load(cpFilePath)
+ if err != nil {
+ os.Remove(cpFilePath)
+ }
+
+ // Load error or the CP data is invalid.
+ valid, err := ucp.isValid(filePath)
+ if err != nil || !valid {
+ if err = prepare(&ucp, objectKey, filePath, partSize, &bucket, options); err != nil {
+ return err
+ }
+ os.Remove(cpFilePath)
+ }
+
+ chunks := ucp.todoParts()
+ imur := InitiateMultipartUploadResult{
+ Bucket: bucket.BucketName,
+ Key: objectKey,
+ UploadID: ucp.UploadID}
+
+ jobs := make(chan FileChunk, len(chunks))
+ results := make(chan UploadPart, len(chunks))
+ failed := make(chan error)
+ die := make(chan bool)
+
+ completedBytes := ucp.getCompletedBytes()
+ event := newProgressEvent(TransferStartedEvent, completedBytes, ucp.FileStat.Size)
+ publishProgress(listener, event)
+
+ // Start the workers
+ arg := workerArg{&bucket, filePath, imur, payerOptions, uploadPartHooker}
+ for w := 1; w <= routines; w++ {
+ go worker(w, arg, jobs, results, failed, die)
+ }
+
+ // Schedule jobs
+ go scheduler(jobs, chunks)
+
+ // Waiting for the job finished
+ completed := 0
+ for completed < len(chunks) {
+ select {
+ case part := <-results:
+ completed++
+ ucp.updatePart(part)
+ ucp.dump(cpFilePath)
+ completedBytes += ucp.Parts[part.PartNumber-1].Chunk.Size
+ event = newProgressEvent(TransferDataEvent, completedBytes, ucp.FileStat.Size)
+ publishProgress(listener, event)
+ case err := <-failed:
+ close(die)
+ event = newProgressEvent(TransferFailedEvent, completedBytes, ucp.FileStat.Size)
+ publishProgress(listener, event)
+ return err
+ }
+
+ if completed >= len(chunks) {
+ break
+ }
+ }
+
+ event = newProgressEvent(TransferCompletedEvent, completedBytes, ucp.FileStat.Size)
+ publishProgress(listener, event)
+
+ // Complete the multipart upload
+ err = complete(&ucp, &bucket, ucp.allParts(), cpFilePath, payerOptions)
+ return err
+}
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/utils.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/utils.go
new file mode 100644
index 000000000..c0e7b2b1b
--- /dev/null
+++ b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/utils.go
@@ -0,0 +1,265 @@
+package oss
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "hash/crc64"
+ "net/http"
+ "os"
+ "os/exec"
+ "runtime"
+ "strconv"
+ "strings"
+ "time"
+)
+
+// userAgent gets user agent
+// It has the SDK version information, OS information and GO version
+func userAgent() string {
+ sys := getSysInfo()
+ return fmt.Sprintf("aliyun-sdk-go/%s (%s/%s/%s;%s)", Version, sys.name,
+ sys.release, sys.machine, runtime.Version())
+}
+
+type sysInfo struct {
+ name string // OS name such as windows/Linux
+ release string // OS version 2.6.32-220.23.2.ali1089.el5.x86_64 etc
+ machine string // CPU type amd64/x86_64
+}
+
+// getSysInfo gets system info
+// gets the OS information and CPU type
+func getSysInfo() sysInfo {
+ name := runtime.GOOS
+ release := "-"
+ machine := runtime.GOARCH
+ if out, err := exec.Command("uname", "-s").CombinedOutput(); err == nil {
+ name = string(bytes.TrimSpace(out))
+ }
+ if out, err := exec.Command("uname", "-r").CombinedOutput(); err == nil {
+ release = string(bytes.TrimSpace(out))
+ }
+ if out, err := exec.Command("uname", "-m").CombinedOutput(); err == nil {
+ machine = string(bytes.TrimSpace(out))
+ }
+ return sysInfo{name: name, release: release, machine: machine}
+}
+
+// unpackedRange
+type unpackedRange struct {
+ hasStart bool // Flag indicates if the start point is specified
+ hasEnd bool // Flag indicates if the end point is specified
+ start int64 // Start point
+ end int64 // End point
+}
+
+// invalidRangeError returns invalid range error
+func invalidRangeError(r string) error {
+ return fmt.Errorf("InvalidRange %s", r)
+}
+
+// parseRange parse various styles of range such as bytes=M-N
+func parseRange(normalizedRange string) (*unpackedRange, error) {
+ var err error
+ hasStart := false
+ hasEnd := false
+ var start int64
+ var end int64
+
+ // Bytes==M-N or ranges=M-N
+ nrSlice := strings.Split(normalizedRange, "=")
+ if len(nrSlice) != 2 || nrSlice[0] != "bytes" {
+ return nil, invalidRangeError(normalizedRange)
+ }
+
+ // Bytes=M-N,X-Y
+ rSlice := strings.Split(nrSlice[1], ",")
+ rStr := rSlice[0]
+
+ if strings.HasSuffix(rStr, "-") { // M-
+ startStr := rStr[:len(rStr)-1]
+ start, err = strconv.ParseInt(startStr, 10, 64)
+ if err != nil {
+ return nil, invalidRangeError(normalizedRange)
+ }
+ hasStart = true
+ } else if strings.HasPrefix(rStr, "-") { // -N
+ len := rStr[1:]
+ end, err = strconv.ParseInt(len, 10, 64)
+ if err != nil {
+ return nil, invalidRangeError(normalizedRange)
+ }
+ if end == 0 { // -0
+ return nil, invalidRangeError(normalizedRange)
+ }
+ hasEnd = true
+ } else { // M-N
+ valSlice := strings.Split(rStr, "-")
+ if len(valSlice) != 2 {
+ return nil, invalidRangeError(normalizedRange)
+ }
+ start, err = strconv.ParseInt(valSlice[0], 10, 64)
+ if err != nil {
+ return nil, invalidRangeError(normalizedRange)
+ }
+ hasStart = true
+ end, err = strconv.ParseInt(valSlice[1], 10, 64)
+ if err != nil {
+ return nil, invalidRangeError(normalizedRange)
+ }
+ hasEnd = true
+ }
+
+ return &unpackedRange{hasStart, hasEnd, start, end}, nil
+}
+
+// adjustRange returns adjusted range, adjust the range according to the length of the file
+func adjustRange(ur *unpackedRange, size int64) (start, end int64) {
+ if ur == nil {
+ return 0, size
+ }
+
+ if ur.hasStart && ur.hasEnd {
+ start = ur.start
+ end = ur.end + 1
+ if ur.start < 0 || ur.start >= size || ur.end > size || ur.start > ur.end {
+ start = 0
+ end = size
+ }
+ } else if ur.hasStart {
+ start = ur.start
+ end = size
+ if ur.start < 0 || ur.start >= size {
+ start = 0
+ }
+ } else if ur.hasEnd {
+ start = size - ur.end
+ end = size
+ if ur.end < 0 || ur.end > size {
+ start = 0
+ end = size
+ }
+ }
+ return
+}
+
+// GetNowSec returns Unix time, the number of seconds elapsed since January 1, 1970 UTC.
+// gets the current time in Unix time, in seconds.
+func GetNowSec() int64 {
+ return time.Now().Unix()
+}
+
+// GetNowNanoSec returns t as a Unix time, the number of nanoseconds elapsed
+// since January 1, 1970 UTC. The result is undefined if the Unix time
+// in nanoseconds cannot be represented by an int64. Note that this
+// means the result of calling UnixNano on the zero Time is undefined.
+// gets the current time in Unix time, in nanoseconds.
+func GetNowNanoSec() int64 {
+ return time.Now().UnixNano()
+}
+
+// GetNowGMT gets the current time in GMT format.
+func GetNowGMT() string {
+ return time.Now().UTC().Format(http.TimeFormat)
+}
+
+// FileChunk is the file chunk definition
+type FileChunk struct {
+ Number int // Chunk number
+ Offset int64 // Chunk offset
+ Size int64 // Chunk size.
+}
+
+// SplitFileByPartNum splits big file into parts by the num of parts.
+// Split the file with specified parts count, returns the split result when error is nil.
+func SplitFileByPartNum(fileName string, chunkNum int) ([]FileChunk, error) {
+ if chunkNum <= 0 || chunkNum > 10000 {
+ return nil, errors.New("chunkNum invalid")
+ }
+
+ file, err := os.Open(fileName)
+ if err != nil {
+ return nil, err
+ }
+ defer file.Close()
+
+ stat, err := file.Stat()
+ if err != nil {
+ return nil, err
+ }
+
+ if int64(chunkNum) > stat.Size() {
+ return nil, errors.New("oss: chunkNum invalid")
+ }
+
+ var chunks []FileChunk
+ var chunk = FileChunk{}
+ var chunkN = (int64)(chunkNum)
+ for i := int64(0); i < chunkN; i++ {
+ chunk.Number = int(i + 1)
+ chunk.Offset = i * (stat.Size() / chunkN)
+ if i == chunkN-1 {
+ chunk.Size = stat.Size()/chunkN + stat.Size()%chunkN
+ } else {
+ chunk.Size = stat.Size() / chunkN
+ }
+ chunks = append(chunks, chunk)
+ }
+
+ return chunks, nil
+}
+
+// SplitFileByPartSize splits big file into parts by the size of parts.
+// Splits the file by the part size. Returns the FileChunk when error is nil.
+func SplitFileByPartSize(fileName string, chunkSize int64) ([]FileChunk, error) {
+ if chunkSize <= 0 {
+ return nil, errors.New("chunkSize invalid")
+ }
+
+ file, err := os.Open(fileName)
+ if err != nil {
+ return nil, err
+ }
+ defer file.Close()
+
+ stat, err := file.Stat()
+ if err != nil {
+ return nil, err
+ }
+ var chunkN = stat.Size() / chunkSize
+ if chunkN >= 10000 {
+ return nil, errors.New("Too many parts, please increase part size")
+ }
+
+ var chunks []FileChunk
+ var chunk = FileChunk{}
+ for i := int64(0); i < chunkN; i++ {
+ chunk.Number = int(i + 1)
+ chunk.Offset = i * chunkSize
+ chunk.Size = chunkSize
+ chunks = append(chunks, chunk)
+ }
+
+ if stat.Size()%chunkSize > 0 {
+ chunk.Number = len(chunks) + 1
+ chunk.Offset = int64(len(chunks)) * chunkSize
+ chunk.Size = stat.Size() % chunkSize
+ chunks = append(chunks, chunk)
+ }
+
+ return chunks, nil
+}
+
+// GetPartEnd calculates the end position
+func GetPartEnd(begin int64, total int64, per int64) int64 {
+ if begin+per > total {
+ return total - 1
+ }
+ return begin + per - 1
+}
+
+// crcTable returns the table constructed from the specified polynomial
+var crcTable = func() *crc64.Table {
+ return crc64.MakeTable(crc64.ECMA)
+}
diff --git a/vendor/github.com/json-iterator/go/.codecov.yml b/vendor/github.com/json-iterator/go/.codecov.yml
new file mode 100644
index 000000000..955dc0be5
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/.codecov.yml
@@ -0,0 +1,3 @@
+ignore:
+ - "output_tests/.*"
+
diff --git a/vendor/github.com/json-iterator/go/.gitignore b/vendor/github.com/json-iterator/go/.gitignore
new file mode 100644
index 000000000..15556530a
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/.gitignore
@@ -0,0 +1,4 @@
+/vendor
+/bug_test.go
+/coverage.txt
+/.idea
diff --git a/vendor/github.com/json-iterator/go/.travis.yml b/vendor/github.com/json-iterator/go/.travis.yml
new file mode 100644
index 000000000..449e67cd0
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/.travis.yml
@@ -0,0 +1,14 @@
+language: go
+
+go:
+ - 1.8.x
+ - 1.x
+
+before_install:
+ - go get -t -v ./...
+
+script:
+ - ./test.sh
+
+after_success:
+ - bash <(curl -s https://codecov.io/bash)
diff --git a/vendor/github.com/json-iterator/go/Gopkg.lock b/vendor/github.com/json-iterator/go/Gopkg.lock
new file mode 100644
index 000000000..c8a9fbb38
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/Gopkg.lock
@@ -0,0 +1,21 @@
+# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
+
+
+[[projects]]
+ name = "github.com/modern-go/concurrent"
+ packages = ["."]
+ revision = "e0a39a4cb4216ea8db28e22a69f4ec25610d513a"
+ version = "1.0.0"
+
+[[projects]]
+ name = "github.com/modern-go/reflect2"
+ packages = ["."]
+ revision = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd"
+ version = "1.0.1"
+
+[solve-meta]
+ analyzer-name = "dep"
+ analyzer-version = 1
+ inputs-digest = "ea54a775e5a354cb015502d2e7aa4b74230fc77e894f34a838b268c25ec8eeb8"
+ solver-name = "gps-cdcl"
+ solver-version = 1
diff --git a/vendor/github.com/json-iterator/go/Gopkg.toml b/vendor/github.com/json-iterator/go/Gopkg.toml
new file mode 100644
index 000000000..313a0f887
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/Gopkg.toml
@@ -0,0 +1,26 @@
+# Gopkg.toml example
+#
+# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
+# for detailed Gopkg.toml documentation.
+#
+# required = ["github.com/user/thing/cmd/thing"]
+# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
+#
+# [[constraint]]
+# name = "github.com/user/project"
+# version = "1.0.0"
+#
+# [[constraint]]
+# name = "github.com/user/project2"
+# branch = "dev"
+# source = "github.com/myfork/project2"
+#
+# [[override]]
+# name = "github.com/x/y"
+# version = "2.4.0"
+
+ignored = ["github.com/davecgh/go-spew*","github.com/google/gofuzz*","github.com/stretchr/testify*"]
+
+[[constraint]]
+ name = "github.com/modern-go/reflect2"
+ version = "1.0.1"
diff --git a/vendor/github.com/json-iterator/go/LICENSE b/vendor/github.com/json-iterator/go/LICENSE
new file mode 100644
index 000000000..2cf4f5ab2
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016 json-iterator
+
+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/github.com/json-iterator/go/README.md b/vendor/github.com/json-iterator/go/README.md
new file mode 100644
index 000000000..54d5afe95
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/README.md
@@ -0,0 +1,91 @@
+[![Sourcegraph](https://sourcegraph.com/github.com/json-iterator/go/-/badge.svg)](https://sourcegraph.com/github.com/json-iterator/go?badge)
+[![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/json-iterator/go)
+[![Build Status](https://travis-ci.org/json-iterator/go.svg?branch=master)](https://travis-ci.org/json-iterator/go)
+[![codecov](https://codecov.io/gh/json-iterator/go/branch/master/graph/badge.svg)](https://codecov.io/gh/json-iterator/go)
+[![rcard](https://goreportcard.com/badge/github.com/json-iterator/go)](https://goreportcard.com/report/github.com/json-iterator/go)
+[![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/json-iterator/go/master/LICENSE)
+[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/json-iterator/Lobby)
+
+A high-performance 100% compatible drop-in replacement of "encoding/json"
+
+You can also use thrift like JSON using [thrift-iterator](https://github.com/thrift-iterator/go)
+
+```
+Go开发者们请加入我们,滴滴出行平台技术部 taowen@didichuxing.com
+```
+
+# Benchmark
+
+![benchmark](http://jsoniter.com/benchmarks/go-benchmark.png)
+
+Source code: https://github.com/json-iterator/go-benchmark/blob/master/src/github.com/json-iterator/go-benchmark/benchmark_medium_payload_test.go
+
+Raw Result (easyjson requires static code generation)
+
+| | ns/op | allocation bytes | allocation times |
+| --- | --- | --- | --- |
+| std decode | 35510 ns/op | 1960 B/op | 99 allocs/op |
+| easyjson decode | 8499 ns/op | 160 B/op | 4 allocs/op |
+| jsoniter decode | 5623 ns/op | 160 B/op | 3 allocs/op |
+| std encode | 2213 ns/op | 712 B/op | 5 allocs/op |
+| easyjson encode | 883 ns/op | 576 B/op | 3 allocs/op |
+| jsoniter encode | 837 ns/op | 384 B/op | 4 allocs/op |
+
+Always benchmark with your own workload.
+The result depends heavily on the data input.
+
+# Usage
+
+100% compatibility with standard lib
+
+Replace
+
+```go
+import "encoding/json"
+json.Marshal(&data)
+```
+
+with
+
+```go
+import "github.com/json-iterator/go"
+
+var json = jsoniter.ConfigCompatibleWithStandardLibrary
+json.Marshal(&data)
+```
+
+Replace
+
+```go
+import "encoding/json"
+json.Unmarshal(input, &data)
+```
+
+with
+
+```go
+import "github.com/json-iterator/go"
+
+var json = jsoniter.ConfigCompatibleWithStandardLibrary
+json.Unmarshal(input, &data)
+```
+
+[More documentation](http://jsoniter.com/migrate-from-go-std.html)
+
+# How to get
+
+```
+go get github.com/json-iterator/go
+```
+
+# Contribution Welcomed !
+
+Contributors
+
+* [thockin](https://github.com/thockin)
+* [mattn](https://github.com/mattn)
+* [cch123](https://github.com/cch123)
+* [Oleg Shaldybin](https://github.com/olegshaldybin)
+* [Jason Toffaletti](https://github.com/toffaletti)
+
+Report issue or pull request, or email taowen@gmail.com, or [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/json-iterator/Lobby)
diff --git a/vendor/github.com/json-iterator/go/adapter.go b/vendor/github.com/json-iterator/go/adapter.go
new file mode 100644
index 000000000..e674d0f39
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/adapter.go
@@ -0,0 +1,150 @@
+package jsoniter
+
+import (
+ "bytes"
+ "io"
+)
+
+// RawMessage to make replace json with jsoniter
+type RawMessage []byte
+
+// Unmarshal adapts to json/encoding Unmarshal API
+//
+// Unmarshal parses the JSON-encoded data and stores the result in the value pointed to by v.
+// Refer to https://godoc.org/encoding/json#Unmarshal for more information
+func Unmarshal(data []byte, v interface{}) error {
+ return ConfigDefault.Unmarshal(data, v)
+}
+
+// UnmarshalFromString convenient method to read from string instead of []byte
+func UnmarshalFromString(str string, v interface{}) error {
+ return ConfigDefault.UnmarshalFromString(str, v)
+}
+
+// Get quick method to get value from deeply nested JSON structure
+func Get(data []byte, path ...interface{}) Any {
+ return ConfigDefault.Get(data, path...)
+}
+
+// Marshal adapts to json/encoding Marshal API
+//
+// Marshal returns the JSON encoding of v, adapts to json/encoding Marshal API
+// Refer to https://godoc.org/encoding/json#Marshal for more information
+func Marshal(v interface{}) ([]byte, error) {
+ return ConfigDefault.Marshal(v)
+}
+
+// MarshalIndent same as json.MarshalIndent. Prefix is not supported.
+func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
+ return ConfigDefault.MarshalIndent(v, prefix, indent)
+}
+
+// MarshalToString convenient method to write as string instead of []byte
+func MarshalToString(v interface{}) (string, error) {
+ return ConfigDefault.MarshalToString(v)
+}
+
+// NewDecoder adapts to json/stream NewDecoder API.
+//
+// NewDecoder returns a new decoder that reads from r.
+//
+// Instead of a json/encoding Decoder, an Decoder is returned
+// Refer to https://godoc.org/encoding/json#NewDecoder for more information
+func NewDecoder(reader io.Reader) *Decoder {
+ return ConfigDefault.NewDecoder(reader)
+}
+
+// Decoder reads and decodes JSON values from an input stream.
+// Decoder provides identical APIs with json/stream Decoder (Token() and UseNumber() are in progress)
+type Decoder struct {
+ iter *Iterator
+}
+
+// Decode decode JSON into interface{}
+func (adapter *Decoder) Decode(obj interface{}) error {
+ if adapter.iter.head == adapter.iter.tail && adapter.iter.reader != nil {
+ if !adapter.iter.loadMore() {
+ return io.EOF
+ }
+ }
+ adapter.iter.ReadVal(obj)
+ err := adapter.iter.Error
+ if err == io.EOF {
+ return nil
+ }
+ return adapter.iter.Error
+}
+
+// More is there more?
+func (adapter *Decoder) More() bool {
+ iter := adapter.iter
+ if iter.Error != nil {
+ return false
+ }
+ c := iter.nextToken()
+ if c == 0 {
+ return false
+ }
+ iter.unreadByte()
+ return c != ']' && c != '}'
+}
+
+// Buffered remaining buffer
+func (adapter *Decoder) Buffered() io.Reader {
+ remaining := adapter.iter.buf[adapter.iter.head:adapter.iter.tail]
+ return bytes.NewReader(remaining)
+}
+
+// UseNumber causes the Decoder to unmarshal a number into an interface{} as a
+// Number instead of as a float64.
+func (adapter *Decoder) UseNumber() {
+ cfg := adapter.iter.cfg.configBeforeFrozen
+ cfg.UseNumber = true
+ adapter.iter.cfg = cfg.frozeWithCacheReuse(adapter.iter.cfg.extraExtensions)
+}
+
+// DisallowUnknownFields causes the Decoder to return an error when the destination
+// is a struct and the input contains object keys which do not match any
+// non-ignored, exported fields in the destination.
+func (adapter *Decoder) DisallowUnknownFields() {
+ cfg := adapter.iter.cfg.configBeforeFrozen
+ cfg.DisallowUnknownFields = true
+ adapter.iter.cfg = cfg.frozeWithCacheReuse(adapter.iter.cfg.extraExtensions)
+}
+
+// NewEncoder same as json.NewEncoder
+func NewEncoder(writer io.Writer) *Encoder {
+ return ConfigDefault.NewEncoder(writer)
+}
+
+// Encoder same as json.Encoder
+type Encoder struct {
+ stream *Stream
+}
+
+// Encode encode interface{} as JSON to io.Writer
+func (adapter *Encoder) Encode(val interface{}) error {
+ adapter.stream.WriteVal(val)
+ adapter.stream.WriteRaw("\n")
+ adapter.stream.Flush()
+ return adapter.stream.Error
+}
+
+// SetIndent set the indention. Prefix is not supported
+func (adapter *Encoder) SetIndent(prefix, indent string) {
+ config := adapter.stream.cfg.configBeforeFrozen
+ config.IndentionStep = len(indent)
+ adapter.stream.cfg = config.frozeWithCacheReuse(adapter.stream.cfg.extraExtensions)
+}
+
+// SetEscapeHTML escape html by default, set to false to disable
+func (adapter *Encoder) SetEscapeHTML(escapeHTML bool) {
+ config := adapter.stream.cfg.configBeforeFrozen
+ config.EscapeHTML = escapeHTML
+ adapter.stream.cfg = config.frozeWithCacheReuse(adapter.stream.cfg.extraExtensions)
+}
+
+// Valid reports whether data is a valid JSON encoding.
+func Valid(data []byte) bool {
+ return ConfigDefault.Valid(data)
+}
diff --git a/vendor/github.com/json-iterator/go/any.go b/vendor/github.com/json-iterator/go/any.go
new file mode 100644
index 000000000..daecfed61
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any.go
@@ -0,0 +1,321 @@
+package jsoniter
+
+import (
+ "errors"
+ "fmt"
+ "github.com/modern-go/reflect2"
+ "io"
+ "reflect"
+ "strconv"
+ "unsafe"
+)
+
+// Any generic object representation.
+// The lazy json implementation holds []byte and parse lazily.
+type Any interface {
+ LastError() error
+ ValueType() ValueType
+ MustBeValid() Any
+ ToBool() bool
+ ToInt() int
+ ToInt32() int32
+ ToInt64() int64
+ ToUint() uint
+ ToUint32() uint32
+ ToUint64() uint64
+ ToFloat32() float32
+ ToFloat64() float64
+ ToString() string
+ ToVal(val interface{})
+ Get(path ...interface{}) Any
+ Size() int
+ Keys() []string
+ GetInterface() interface{}
+ WriteTo(stream *Stream)
+}
+
+type baseAny struct{}
+
+func (any *baseAny) Get(path ...interface{}) Any {
+ return &invalidAny{baseAny{}, fmt.Errorf("GetIndex %v from simple value", path)}
+}
+
+func (any *baseAny) Size() int {
+ return 0
+}
+
+func (any *baseAny) Keys() []string {
+ return []string{}
+}
+
+func (any *baseAny) ToVal(obj interface{}) {
+ panic("not implemented")
+}
+
+// WrapInt32 turn int32 into Any interface
+func WrapInt32(val int32) Any {
+ return &int32Any{baseAny{}, val}
+}
+
+// WrapInt64 turn int64 into Any interface
+func WrapInt64(val int64) Any {
+ return &int64Any{baseAny{}, val}
+}
+
+// WrapUint32 turn uint32 into Any interface
+func WrapUint32(val uint32) Any {
+ return &uint32Any{baseAny{}, val}
+}
+
+// WrapUint64 turn uint64 into Any interface
+func WrapUint64(val uint64) Any {
+ return &uint64Any{baseAny{}, val}
+}
+
+// WrapFloat64 turn float64 into Any interface
+func WrapFloat64(val float64) Any {
+ return &floatAny{baseAny{}, val}
+}
+
+// WrapString turn string into Any interface
+func WrapString(val string) Any {
+ return &stringAny{baseAny{}, val}
+}
+
+// Wrap turn a go object into Any interface
+func Wrap(val interface{}) Any {
+ if val == nil {
+ return &nilAny{}
+ }
+ asAny, isAny := val.(Any)
+ if isAny {
+ return asAny
+ }
+ typ := reflect2.TypeOf(val)
+ switch typ.Kind() {
+ case reflect.Slice:
+ return wrapArray(val)
+ case reflect.Struct:
+ return wrapStruct(val)
+ case reflect.Map:
+ return wrapMap(val)
+ case reflect.String:
+ return WrapString(val.(string))
+ case reflect.Int:
+ if strconv.IntSize == 32 {
+ return WrapInt32(int32(val.(int)))
+ }
+ return WrapInt64(int64(val.(int)))
+ case reflect.Int8:
+ return WrapInt32(int32(val.(int8)))
+ case reflect.Int16:
+ return WrapInt32(int32(val.(int16)))
+ case reflect.Int32:
+ return WrapInt32(val.(int32))
+ case reflect.Int64:
+ return WrapInt64(val.(int64))
+ case reflect.Uint:
+ if strconv.IntSize == 32 {
+ return WrapUint32(uint32(val.(uint)))
+ }
+ return WrapUint64(uint64(val.(uint)))
+ case reflect.Uintptr:
+ if ptrSize == 32 {
+ return WrapUint32(uint32(val.(uintptr)))
+ }
+ return WrapUint64(uint64(val.(uintptr)))
+ case reflect.Uint8:
+ return WrapUint32(uint32(val.(uint8)))
+ case reflect.Uint16:
+ return WrapUint32(uint32(val.(uint16)))
+ case reflect.Uint32:
+ return WrapUint32(uint32(val.(uint32)))
+ case reflect.Uint64:
+ return WrapUint64(val.(uint64))
+ case reflect.Float32:
+ return WrapFloat64(float64(val.(float32)))
+ case reflect.Float64:
+ return WrapFloat64(val.(float64))
+ case reflect.Bool:
+ if val.(bool) == true {
+ return &trueAny{}
+ }
+ return &falseAny{}
+ }
+ return &invalidAny{baseAny{}, fmt.Errorf("unsupported type: %v", typ)}
+}
+
+// ReadAny read next JSON element as an Any object. It is a better json.RawMessage.
+func (iter *Iterator) ReadAny() Any {
+ return iter.readAny()
+}
+
+func (iter *Iterator) readAny() Any {
+ c := iter.nextToken()
+ switch c {
+ case '"':
+ iter.unreadByte()
+ return &stringAny{baseAny{}, iter.ReadString()}
+ case 'n':
+ iter.skipThreeBytes('u', 'l', 'l') // null
+ return &nilAny{}
+ case 't':
+ iter.skipThreeBytes('r', 'u', 'e') // true
+ return &trueAny{}
+ case 'f':
+ iter.skipFourBytes('a', 'l', 's', 'e') // false
+ return &falseAny{}
+ case '{':
+ return iter.readObjectAny()
+ case '[':
+ return iter.readArrayAny()
+ case '-':
+ return iter.readNumberAny(false)
+ case 0:
+ return &invalidAny{baseAny{}, errors.New("input is empty")}
+ default:
+ return iter.readNumberAny(true)
+ }
+}
+
+func (iter *Iterator) readNumberAny(positive bool) Any {
+ iter.startCapture(iter.head - 1)
+ iter.skipNumber()
+ lazyBuf := iter.stopCapture()
+ return &numberLazyAny{baseAny{}, iter.cfg, lazyBuf, nil}
+}
+
+func (iter *Iterator) readObjectAny() Any {
+ iter.startCapture(iter.head - 1)
+ iter.skipObject()
+ lazyBuf := iter.stopCapture()
+ return &objectLazyAny{baseAny{}, iter.cfg, lazyBuf, nil}
+}
+
+func (iter *Iterator) readArrayAny() Any {
+ iter.startCapture(iter.head - 1)
+ iter.skipArray()
+ lazyBuf := iter.stopCapture()
+ return &arrayLazyAny{baseAny{}, iter.cfg, lazyBuf, nil}
+}
+
+func locateObjectField(iter *Iterator, target string) []byte {
+ var found []byte
+ iter.ReadObjectCB(func(iter *Iterator, field string) bool {
+ if field == target {
+ found = iter.SkipAndReturnBytes()
+ return false
+ }
+ iter.Skip()
+ return true
+ })
+ return found
+}
+
+func locateArrayElement(iter *Iterator, target int) []byte {
+ var found []byte
+ n := 0
+ iter.ReadArrayCB(func(iter *Iterator) bool {
+ if n == target {
+ found = iter.SkipAndReturnBytes()
+ return false
+ }
+ iter.Skip()
+ n++
+ return true
+ })
+ return found
+}
+
+func locatePath(iter *Iterator, path []interface{}) Any {
+ for i, pathKeyObj := range path {
+ switch pathKey := pathKeyObj.(type) {
+ case string:
+ valueBytes := locateObjectField(iter, pathKey)
+ if valueBytes == nil {
+ return newInvalidAny(path[i:])
+ }
+ iter.ResetBytes(valueBytes)
+ case int:
+ valueBytes := locateArrayElement(iter, pathKey)
+ if valueBytes == nil {
+ return newInvalidAny(path[i:])
+ }
+ iter.ResetBytes(valueBytes)
+ case int32:
+ if '*' == pathKey {
+ return iter.readAny().Get(path[i:]...)
+ }
+ return newInvalidAny(path[i:])
+ default:
+ return newInvalidAny(path[i:])
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ return &invalidAny{baseAny{}, iter.Error}
+ }
+ return iter.readAny()
+}
+
+var anyType = reflect2.TypeOfPtr((*Any)(nil)).Elem()
+
+func createDecoderOfAny(ctx *ctx, typ reflect2.Type) ValDecoder {
+ if typ == anyType {
+ return &directAnyCodec{}
+ }
+ if typ.Implements(anyType) {
+ return &anyCodec{
+ valType: typ,
+ }
+ }
+ return nil
+}
+
+func createEncoderOfAny(ctx *ctx, typ reflect2.Type) ValEncoder {
+ if typ == anyType {
+ return &directAnyCodec{}
+ }
+ if typ.Implements(anyType) {
+ return &anyCodec{
+ valType: typ,
+ }
+ }
+ return nil
+}
+
+type anyCodec struct {
+ valType reflect2.Type
+}
+
+func (codec *anyCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ panic("not implemented")
+}
+
+func (codec *anyCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ obj := codec.valType.UnsafeIndirect(ptr)
+ any := obj.(Any)
+ any.WriteTo(stream)
+}
+
+func (codec *anyCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ obj := codec.valType.UnsafeIndirect(ptr)
+ any := obj.(Any)
+ return any.Size() == 0
+}
+
+type directAnyCodec struct {
+}
+
+func (codec *directAnyCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ *(*Any)(ptr) = iter.readAny()
+}
+
+func (codec *directAnyCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ any := *(*Any)(ptr)
+ any.WriteTo(stream)
+}
+
+func (codec *directAnyCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ any := *(*Any)(ptr)
+ return any.Size() == 0
+}
diff --git a/vendor/github.com/json-iterator/go/any_array.go b/vendor/github.com/json-iterator/go/any_array.go
new file mode 100644
index 000000000..0449e9aa4
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_array.go
@@ -0,0 +1,278 @@
+package jsoniter
+
+import (
+ "reflect"
+ "unsafe"
+)
+
+type arrayLazyAny struct {
+ baseAny
+ cfg *frozenConfig
+ buf []byte
+ err error
+}
+
+func (any *arrayLazyAny) ValueType() ValueType {
+ return ArrayValue
+}
+
+func (any *arrayLazyAny) MustBeValid() Any {
+ return any
+}
+
+func (any *arrayLazyAny) LastError() error {
+ return any.err
+}
+
+func (any *arrayLazyAny) ToBool() bool {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ return iter.ReadArray()
+}
+
+func (any *arrayLazyAny) ToInt() int {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToInt32() int32 {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToInt64() int64 {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToUint() uint {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToUint32() uint32 {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToUint64() uint64 {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToFloat32() float32 {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToFloat64() float64 {
+ if any.ToBool() {
+ return 1
+ }
+ return 0
+}
+
+func (any *arrayLazyAny) ToString() string {
+ return *(*string)(unsafe.Pointer(&any.buf))
+}
+
+func (any *arrayLazyAny) ToVal(val interface{}) {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ iter.ReadVal(val)
+}
+
+func (any *arrayLazyAny) Get(path ...interface{}) Any {
+ if len(path) == 0 {
+ return any
+ }
+ switch firstPath := path[0].(type) {
+ case int:
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ valueBytes := locateArrayElement(iter, firstPath)
+ if valueBytes == nil {
+ return newInvalidAny(path)
+ }
+ iter.ResetBytes(valueBytes)
+ return locatePath(iter, path[1:])
+ case int32:
+ if '*' == firstPath {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ arr := make([]Any, 0)
+ iter.ReadArrayCB(func(iter *Iterator) bool {
+ found := iter.readAny().Get(path[1:]...)
+ if found.ValueType() != InvalidValue {
+ arr = append(arr, found)
+ }
+ return true
+ })
+ return wrapArray(arr)
+ }
+ return newInvalidAny(path)
+ default:
+ return newInvalidAny(path)
+ }
+}
+
+func (any *arrayLazyAny) Size() int {
+ size := 0
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ iter.ReadArrayCB(func(iter *Iterator) bool {
+ size++
+ iter.Skip()
+ return true
+ })
+ return size
+}
+
+func (any *arrayLazyAny) WriteTo(stream *Stream) {
+ stream.Write(any.buf)
+}
+
+func (any *arrayLazyAny) GetInterface() interface{} {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ return iter.Read()
+}
+
+type arrayAny struct {
+ baseAny
+ val reflect.Value
+}
+
+func wrapArray(val interface{}) *arrayAny {
+ return &arrayAny{baseAny{}, reflect.ValueOf(val)}
+}
+
+func (any *arrayAny) ValueType() ValueType {
+ return ArrayValue
+}
+
+func (any *arrayAny) MustBeValid() Any {
+ return any
+}
+
+func (any *arrayAny) LastError() error {
+ return nil
+}
+
+func (any *arrayAny) ToBool() bool {
+ return any.val.Len() != 0
+}
+
+func (any *arrayAny) ToInt() int {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToInt32() int32 {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToInt64() int64 {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToUint() uint {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToUint32() uint32 {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToUint64() uint64 {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToFloat32() float32 {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToFloat64() float64 {
+ if any.val.Len() == 0 {
+ return 0
+ }
+ return 1
+}
+
+func (any *arrayAny) ToString() string {
+ str, _ := MarshalToString(any.val.Interface())
+ return str
+}
+
+func (any *arrayAny) Get(path ...interface{}) Any {
+ if len(path) == 0 {
+ return any
+ }
+ switch firstPath := path[0].(type) {
+ case int:
+ if firstPath < 0 || firstPath >= any.val.Len() {
+ return newInvalidAny(path)
+ }
+ return Wrap(any.val.Index(firstPath).Interface())
+ case int32:
+ if '*' == firstPath {
+ mappedAll := make([]Any, 0)
+ for i := 0; i < any.val.Len(); i++ {
+ mapped := Wrap(any.val.Index(i).Interface()).Get(path[1:]...)
+ if mapped.ValueType() != InvalidValue {
+ mappedAll = append(mappedAll, mapped)
+ }
+ }
+ return wrapArray(mappedAll)
+ }
+ return newInvalidAny(path)
+ default:
+ return newInvalidAny(path)
+ }
+}
+
+func (any *arrayAny) Size() int {
+ return any.val.Len()
+}
+
+func (any *arrayAny) WriteTo(stream *Stream) {
+ stream.WriteVal(any.val)
+}
+
+func (any *arrayAny) GetInterface() interface{} {
+ return any.val.Interface()
+}
diff --git a/vendor/github.com/json-iterator/go/any_bool.go b/vendor/github.com/json-iterator/go/any_bool.go
new file mode 100644
index 000000000..9452324af
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_bool.go
@@ -0,0 +1,137 @@
+package jsoniter
+
+type trueAny struct {
+ baseAny
+}
+
+func (any *trueAny) LastError() error {
+ return nil
+}
+
+func (any *trueAny) ToBool() bool {
+ return true
+}
+
+func (any *trueAny) ToInt() int {
+ return 1
+}
+
+func (any *trueAny) ToInt32() int32 {
+ return 1
+}
+
+func (any *trueAny) ToInt64() int64 {
+ return 1
+}
+
+func (any *trueAny) ToUint() uint {
+ return 1
+}
+
+func (any *trueAny) ToUint32() uint32 {
+ return 1
+}
+
+func (any *trueAny) ToUint64() uint64 {
+ return 1
+}
+
+func (any *trueAny) ToFloat32() float32 {
+ return 1
+}
+
+func (any *trueAny) ToFloat64() float64 {
+ return 1
+}
+
+func (any *trueAny) ToString() string {
+ return "true"
+}
+
+func (any *trueAny) WriteTo(stream *Stream) {
+ stream.WriteTrue()
+}
+
+func (any *trueAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *trueAny) GetInterface() interface{} {
+ return true
+}
+
+func (any *trueAny) ValueType() ValueType {
+ return BoolValue
+}
+
+func (any *trueAny) MustBeValid() Any {
+ return any
+}
+
+type falseAny struct {
+ baseAny
+}
+
+func (any *falseAny) LastError() error {
+ return nil
+}
+
+func (any *falseAny) ToBool() bool {
+ return false
+}
+
+func (any *falseAny) ToInt() int {
+ return 0
+}
+
+func (any *falseAny) ToInt32() int32 {
+ return 0
+}
+
+func (any *falseAny) ToInt64() int64 {
+ return 0
+}
+
+func (any *falseAny) ToUint() uint {
+ return 0
+}
+
+func (any *falseAny) ToUint32() uint32 {
+ return 0
+}
+
+func (any *falseAny) ToUint64() uint64 {
+ return 0
+}
+
+func (any *falseAny) ToFloat32() float32 {
+ return 0
+}
+
+func (any *falseAny) ToFloat64() float64 {
+ return 0
+}
+
+func (any *falseAny) ToString() string {
+ return "false"
+}
+
+func (any *falseAny) WriteTo(stream *Stream) {
+ stream.WriteFalse()
+}
+
+func (any *falseAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *falseAny) GetInterface() interface{} {
+ return false
+}
+
+func (any *falseAny) ValueType() ValueType {
+ return BoolValue
+}
+
+func (any *falseAny) MustBeValid() Any {
+ return any
+}
diff --git a/vendor/github.com/json-iterator/go/any_float.go b/vendor/github.com/json-iterator/go/any_float.go
new file mode 100644
index 000000000..35fdb0949
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_float.go
@@ -0,0 +1,83 @@
+package jsoniter
+
+import (
+ "strconv"
+)
+
+type floatAny struct {
+ baseAny
+ val float64
+}
+
+func (any *floatAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *floatAny) ValueType() ValueType {
+ return NumberValue
+}
+
+func (any *floatAny) MustBeValid() Any {
+ return any
+}
+
+func (any *floatAny) LastError() error {
+ return nil
+}
+
+func (any *floatAny) ToBool() bool {
+ return any.ToFloat64() != 0
+}
+
+func (any *floatAny) ToInt() int {
+ return int(any.val)
+}
+
+func (any *floatAny) ToInt32() int32 {
+ return int32(any.val)
+}
+
+func (any *floatAny) ToInt64() int64 {
+ return int64(any.val)
+}
+
+func (any *floatAny) ToUint() uint {
+ if any.val > 0 {
+ return uint(any.val)
+ }
+ return 0
+}
+
+func (any *floatAny) ToUint32() uint32 {
+ if any.val > 0 {
+ return uint32(any.val)
+ }
+ return 0
+}
+
+func (any *floatAny) ToUint64() uint64 {
+ if any.val > 0 {
+ return uint64(any.val)
+ }
+ return 0
+}
+
+func (any *floatAny) ToFloat32() float32 {
+ return float32(any.val)
+}
+
+func (any *floatAny) ToFloat64() float64 {
+ return any.val
+}
+
+func (any *floatAny) ToString() string {
+ return strconv.FormatFloat(any.val, 'E', -1, 64)
+}
+
+func (any *floatAny) WriteTo(stream *Stream) {
+ stream.WriteFloat64(any.val)
+}
+
+func (any *floatAny) GetInterface() interface{} {
+ return any.val
+}
diff --git a/vendor/github.com/json-iterator/go/any_int32.go b/vendor/github.com/json-iterator/go/any_int32.go
new file mode 100644
index 000000000..1b56f3991
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_int32.go
@@ -0,0 +1,74 @@
+package jsoniter
+
+import (
+ "strconv"
+)
+
+type int32Any struct {
+ baseAny
+ val int32
+}
+
+func (any *int32Any) LastError() error {
+ return nil
+}
+
+func (any *int32Any) ValueType() ValueType {
+ return NumberValue
+}
+
+func (any *int32Any) MustBeValid() Any {
+ return any
+}
+
+func (any *int32Any) ToBool() bool {
+ return any.val != 0
+}
+
+func (any *int32Any) ToInt() int {
+ return int(any.val)
+}
+
+func (any *int32Any) ToInt32() int32 {
+ return any.val
+}
+
+func (any *int32Any) ToInt64() int64 {
+ return int64(any.val)
+}
+
+func (any *int32Any) ToUint() uint {
+ return uint(any.val)
+}
+
+func (any *int32Any) ToUint32() uint32 {
+ return uint32(any.val)
+}
+
+func (any *int32Any) ToUint64() uint64 {
+ return uint64(any.val)
+}
+
+func (any *int32Any) ToFloat32() float32 {
+ return float32(any.val)
+}
+
+func (any *int32Any) ToFloat64() float64 {
+ return float64(any.val)
+}
+
+func (any *int32Any) ToString() string {
+ return strconv.FormatInt(int64(any.val), 10)
+}
+
+func (any *int32Any) WriteTo(stream *Stream) {
+ stream.WriteInt32(any.val)
+}
+
+func (any *int32Any) Parse() *Iterator {
+ return nil
+}
+
+func (any *int32Any) GetInterface() interface{} {
+ return any.val
+}
diff --git a/vendor/github.com/json-iterator/go/any_int64.go b/vendor/github.com/json-iterator/go/any_int64.go
new file mode 100644
index 000000000..c440d72b6
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_int64.go
@@ -0,0 +1,74 @@
+package jsoniter
+
+import (
+ "strconv"
+)
+
+type int64Any struct {
+ baseAny
+ val int64
+}
+
+func (any *int64Any) LastError() error {
+ return nil
+}
+
+func (any *int64Any) ValueType() ValueType {
+ return NumberValue
+}
+
+func (any *int64Any) MustBeValid() Any {
+ return any
+}
+
+func (any *int64Any) ToBool() bool {
+ return any.val != 0
+}
+
+func (any *int64Any) ToInt() int {
+ return int(any.val)
+}
+
+func (any *int64Any) ToInt32() int32 {
+ return int32(any.val)
+}
+
+func (any *int64Any) ToInt64() int64 {
+ return any.val
+}
+
+func (any *int64Any) ToUint() uint {
+ return uint(any.val)
+}
+
+func (any *int64Any) ToUint32() uint32 {
+ return uint32(any.val)
+}
+
+func (any *int64Any) ToUint64() uint64 {
+ return uint64(any.val)
+}
+
+func (any *int64Any) ToFloat32() float32 {
+ return float32(any.val)
+}
+
+func (any *int64Any) ToFloat64() float64 {
+ return float64(any.val)
+}
+
+func (any *int64Any) ToString() string {
+ return strconv.FormatInt(any.val, 10)
+}
+
+func (any *int64Any) WriteTo(stream *Stream) {
+ stream.WriteInt64(any.val)
+}
+
+func (any *int64Any) Parse() *Iterator {
+ return nil
+}
+
+func (any *int64Any) GetInterface() interface{} {
+ return any.val
+}
diff --git a/vendor/github.com/json-iterator/go/any_invalid.go b/vendor/github.com/json-iterator/go/any_invalid.go
new file mode 100644
index 000000000..1d859eac3
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_invalid.go
@@ -0,0 +1,82 @@
+package jsoniter
+
+import "fmt"
+
+type invalidAny struct {
+ baseAny
+ err error
+}
+
+func newInvalidAny(path []interface{}) *invalidAny {
+ return &invalidAny{baseAny{}, fmt.Errorf("%v not found", path)}
+}
+
+func (any *invalidAny) LastError() error {
+ return any.err
+}
+
+func (any *invalidAny) ValueType() ValueType {
+ return InvalidValue
+}
+
+func (any *invalidAny) MustBeValid() Any {
+ panic(any.err)
+}
+
+func (any *invalidAny) ToBool() bool {
+ return false
+}
+
+func (any *invalidAny) ToInt() int {
+ return 0
+}
+
+func (any *invalidAny) ToInt32() int32 {
+ return 0
+}
+
+func (any *invalidAny) ToInt64() int64 {
+ return 0
+}
+
+func (any *invalidAny) ToUint() uint {
+ return 0
+}
+
+func (any *invalidAny) ToUint32() uint32 {
+ return 0
+}
+
+func (any *invalidAny) ToUint64() uint64 {
+ return 0
+}
+
+func (any *invalidAny) ToFloat32() float32 {
+ return 0
+}
+
+func (any *invalidAny) ToFloat64() float64 {
+ return 0
+}
+
+func (any *invalidAny) ToString() string {
+ return ""
+}
+
+func (any *invalidAny) WriteTo(stream *Stream) {
+}
+
+func (any *invalidAny) Get(path ...interface{}) Any {
+ if any.err == nil {
+ return &invalidAny{baseAny{}, fmt.Errorf("get %v from invalid", path)}
+ }
+ return &invalidAny{baseAny{}, fmt.Errorf("%v, get %v from invalid", any.err, path)}
+}
+
+func (any *invalidAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *invalidAny) GetInterface() interface{} {
+ return nil
+}
diff --git a/vendor/github.com/json-iterator/go/any_nil.go b/vendor/github.com/json-iterator/go/any_nil.go
new file mode 100644
index 000000000..d04cb54c1
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_nil.go
@@ -0,0 +1,69 @@
+package jsoniter
+
+type nilAny struct {
+ baseAny
+}
+
+func (any *nilAny) LastError() error {
+ return nil
+}
+
+func (any *nilAny) ValueType() ValueType {
+ return NilValue
+}
+
+func (any *nilAny) MustBeValid() Any {
+ return any
+}
+
+func (any *nilAny) ToBool() bool {
+ return false
+}
+
+func (any *nilAny) ToInt() int {
+ return 0
+}
+
+func (any *nilAny) ToInt32() int32 {
+ return 0
+}
+
+func (any *nilAny) ToInt64() int64 {
+ return 0
+}
+
+func (any *nilAny) ToUint() uint {
+ return 0
+}
+
+func (any *nilAny) ToUint32() uint32 {
+ return 0
+}
+
+func (any *nilAny) ToUint64() uint64 {
+ return 0
+}
+
+func (any *nilAny) ToFloat32() float32 {
+ return 0
+}
+
+func (any *nilAny) ToFloat64() float64 {
+ return 0
+}
+
+func (any *nilAny) ToString() string {
+ return ""
+}
+
+func (any *nilAny) WriteTo(stream *Stream) {
+ stream.WriteNil()
+}
+
+func (any *nilAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *nilAny) GetInterface() interface{} {
+ return nil
+}
diff --git a/vendor/github.com/json-iterator/go/any_number.go b/vendor/github.com/json-iterator/go/any_number.go
new file mode 100644
index 000000000..9d1e901a6
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_number.go
@@ -0,0 +1,123 @@
+package jsoniter
+
+import (
+ "io"
+ "unsafe"
+)
+
+type numberLazyAny struct {
+ baseAny
+ cfg *frozenConfig
+ buf []byte
+ err error
+}
+
+func (any *numberLazyAny) ValueType() ValueType {
+ return NumberValue
+}
+
+func (any *numberLazyAny) MustBeValid() Any {
+ return any
+}
+
+func (any *numberLazyAny) LastError() error {
+ return any.err
+}
+
+func (any *numberLazyAny) ToBool() bool {
+ return any.ToFloat64() != 0
+}
+
+func (any *numberLazyAny) ToInt() int {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadInt()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToInt32() int32 {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadInt32()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToInt64() int64 {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadInt64()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToUint() uint {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadUint()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToUint32() uint32 {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadUint32()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToUint64() uint64 {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadUint64()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToFloat32() float32 {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadFloat32()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToFloat64() float64 {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ val := iter.ReadFloat64()
+ if iter.Error != nil && iter.Error != io.EOF {
+ any.err = iter.Error
+ }
+ return val
+}
+
+func (any *numberLazyAny) ToString() string {
+ return *(*string)(unsafe.Pointer(&any.buf))
+}
+
+func (any *numberLazyAny) WriteTo(stream *Stream) {
+ stream.Write(any.buf)
+}
+
+func (any *numberLazyAny) GetInterface() interface{} {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ return iter.Read()
+}
diff --git a/vendor/github.com/json-iterator/go/any_object.go b/vendor/github.com/json-iterator/go/any_object.go
new file mode 100644
index 000000000..c44ef5c98
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_object.go
@@ -0,0 +1,374 @@
+package jsoniter
+
+import (
+ "reflect"
+ "unsafe"
+)
+
+type objectLazyAny struct {
+ baseAny
+ cfg *frozenConfig
+ buf []byte
+ err error
+}
+
+func (any *objectLazyAny) ValueType() ValueType {
+ return ObjectValue
+}
+
+func (any *objectLazyAny) MustBeValid() Any {
+ return any
+}
+
+func (any *objectLazyAny) LastError() error {
+ return any.err
+}
+
+func (any *objectLazyAny) ToBool() bool {
+ return true
+}
+
+func (any *objectLazyAny) ToInt() int {
+ return 0
+}
+
+func (any *objectLazyAny) ToInt32() int32 {
+ return 0
+}
+
+func (any *objectLazyAny) ToInt64() int64 {
+ return 0
+}
+
+func (any *objectLazyAny) ToUint() uint {
+ return 0
+}
+
+func (any *objectLazyAny) ToUint32() uint32 {
+ return 0
+}
+
+func (any *objectLazyAny) ToUint64() uint64 {
+ return 0
+}
+
+func (any *objectLazyAny) ToFloat32() float32 {
+ return 0
+}
+
+func (any *objectLazyAny) ToFloat64() float64 {
+ return 0
+}
+
+func (any *objectLazyAny) ToString() string {
+ return *(*string)(unsafe.Pointer(&any.buf))
+}
+
+func (any *objectLazyAny) ToVal(obj interface{}) {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ iter.ReadVal(obj)
+}
+
+func (any *objectLazyAny) Get(path ...interface{}) Any {
+ if len(path) == 0 {
+ return any
+ }
+ switch firstPath := path[0].(type) {
+ case string:
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ valueBytes := locateObjectField(iter, firstPath)
+ if valueBytes == nil {
+ return newInvalidAny(path)
+ }
+ iter.ResetBytes(valueBytes)
+ return locatePath(iter, path[1:])
+ case int32:
+ if '*' == firstPath {
+ mappedAll := map[string]Any{}
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ iter.ReadMapCB(func(iter *Iterator, field string) bool {
+ mapped := locatePath(iter, path[1:])
+ if mapped.ValueType() != InvalidValue {
+ mappedAll[field] = mapped
+ }
+ return true
+ })
+ return wrapMap(mappedAll)
+ }
+ return newInvalidAny(path)
+ default:
+ return newInvalidAny(path)
+ }
+}
+
+func (any *objectLazyAny) Keys() []string {
+ keys := []string{}
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ iter.ReadMapCB(func(iter *Iterator, field string) bool {
+ iter.Skip()
+ keys = append(keys, field)
+ return true
+ })
+ return keys
+}
+
+func (any *objectLazyAny) Size() int {
+ size := 0
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ iter.ReadObjectCB(func(iter *Iterator, field string) bool {
+ iter.Skip()
+ size++
+ return true
+ })
+ return size
+}
+
+func (any *objectLazyAny) WriteTo(stream *Stream) {
+ stream.Write(any.buf)
+}
+
+func (any *objectLazyAny) GetInterface() interface{} {
+ iter := any.cfg.BorrowIterator(any.buf)
+ defer any.cfg.ReturnIterator(iter)
+ return iter.Read()
+}
+
+type objectAny struct {
+ baseAny
+ err error
+ val reflect.Value
+}
+
+func wrapStruct(val interface{}) *objectAny {
+ return &objectAny{baseAny{}, nil, reflect.ValueOf(val)}
+}
+
+func (any *objectAny) ValueType() ValueType {
+ return ObjectValue
+}
+
+func (any *objectAny) MustBeValid() Any {
+ return any
+}
+
+func (any *objectAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *objectAny) LastError() error {
+ return any.err
+}
+
+func (any *objectAny) ToBool() bool {
+ return any.val.NumField() != 0
+}
+
+func (any *objectAny) ToInt() int {
+ return 0
+}
+
+func (any *objectAny) ToInt32() int32 {
+ return 0
+}
+
+func (any *objectAny) ToInt64() int64 {
+ return 0
+}
+
+func (any *objectAny) ToUint() uint {
+ return 0
+}
+
+func (any *objectAny) ToUint32() uint32 {
+ return 0
+}
+
+func (any *objectAny) ToUint64() uint64 {
+ return 0
+}
+
+func (any *objectAny) ToFloat32() float32 {
+ return 0
+}
+
+func (any *objectAny) ToFloat64() float64 {
+ return 0
+}
+
+func (any *objectAny) ToString() string {
+ str, err := MarshalToString(any.val.Interface())
+ any.err = err
+ return str
+}
+
+func (any *objectAny) Get(path ...interface{}) Any {
+ if len(path) == 0 {
+ return any
+ }
+ switch firstPath := path[0].(type) {
+ case string:
+ field := any.val.FieldByName(firstPath)
+ if !field.IsValid() {
+ return newInvalidAny(path)
+ }
+ return Wrap(field.Interface())
+ case int32:
+ if '*' == firstPath {
+ mappedAll := map[string]Any{}
+ for i := 0; i < any.val.NumField(); i++ {
+ field := any.val.Field(i)
+ if field.CanInterface() {
+ mapped := Wrap(field.Interface()).Get(path[1:]...)
+ if mapped.ValueType() != InvalidValue {
+ mappedAll[any.val.Type().Field(i).Name] = mapped
+ }
+ }
+ }
+ return wrapMap(mappedAll)
+ }
+ return newInvalidAny(path)
+ default:
+ return newInvalidAny(path)
+ }
+}
+
+func (any *objectAny) Keys() []string {
+ keys := make([]string, 0, any.val.NumField())
+ for i := 0; i < any.val.NumField(); i++ {
+ keys = append(keys, any.val.Type().Field(i).Name)
+ }
+ return keys
+}
+
+func (any *objectAny) Size() int {
+ return any.val.NumField()
+}
+
+func (any *objectAny) WriteTo(stream *Stream) {
+ stream.WriteVal(any.val)
+}
+
+func (any *objectAny) GetInterface() interface{} {
+ return any.val.Interface()
+}
+
+type mapAny struct {
+ baseAny
+ err error
+ val reflect.Value
+}
+
+func wrapMap(val interface{}) *mapAny {
+ return &mapAny{baseAny{}, nil, reflect.ValueOf(val)}
+}
+
+func (any *mapAny) ValueType() ValueType {
+ return ObjectValue
+}
+
+func (any *mapAny) MustBeValid() Any {
+ return any
+}
+
+func (any *mapAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *mapAny) LastError() error {
+ return any.err
+}
+
+func (any *mapAny) ToBool() bool {
+ return true
+}
+
+func (any *mapAny) ToInt() int {
+ return 0
+}
+
+func (any *mapAny) ToInt32() int32 {
+ return 0
+}
+
+func (any *mapAny) ToInt64() int64 {
+ return 0
+}
+
+func (any *mapAny) ToUint() uint {
+ return 0
+}
+
+func (any *mapAny) ToUint32() uint32 {
+ return 0
+}
+
+func (any *mapAny) ToUint64() uint64 {
+ return 0
+}
+
+func (any *mapAny) ToFloat32() float32 {
+ return 0
+}
+
+func (any *mapAny) ToFloat64() float64 {
+ return 0
+}
+
+func (any *mapAny) ToString() string {
+ str, err := MarshalToString(any.val.Interface())
+ any.err = err
+ return str
+}
+
+func (any *mapAny) Get(path ...interface{}) Any {
+ if len(path) == 0 {
+ return any
+ }
+ switch firstPath := path[0].(type) {
+ case int32:
+ if '*' == firstPath {
+ mappedAll := map[string]Any{}
+ for _, key := range any.val.MapKeys() {
+ keyAsStr := key.String()
+ element := Wrap(any.val.MapIndex(key).Interface())
+ mapped := element.Get(path[1:]...)
+ if mapped.ValueType() != InvalidValue {
+ mappedAll[keyAsStr] = mapped
+ }
+ }
+ return wrapMap(mappedAll)
+ }
+ return newInvalidAny(path)
+ default:
+ value := any.val.MapIndex(reflect.ValueOf(firstPath))
+ if !value.IsValid() {
+ return newInvalidAny(path)
+ }
+ return Wrap(value.Interface())
+ }
+}
+
+func (any *mapAny) Keys() []string {
+ keys := make([]string, 0, any.val.Len())
+ for _, key := range any.val.MapKeys() {
+ keys = append(keys, key.String())
+ }
+ return keys
+}
+
+func (any *mapAny) Size() int {
+ return any.val.Len()
+}
+
+func (any *mapAny) WriteTo(stream *Stream) {
+ stream.WriteVal(any.val)
+}
+
+func (any *mapAny) GetInterface() interface{} {
+ return any.val.Interface()
+}
diff --git a/vendor/github.com/json-iterator/go/any_str.go b/vendor/github.com/json-iterator/go/any_str.go
new file mode 100644
index 000000000..a4b93c78c
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_str.go
@@ -0,0 +1,166 @@
+package jsoniter
+
+import (
+ "fmt"
+ "strconv"
+)
+
+type stringAny struct {
+ baseAny
+ val string
+}
+
+func (any *stringAny) Get(path ...interface{}) Any {
+ if len(path) == 0 {
+ return any
+ }
+ return &invalidAny{baseAny{}, fmt.Errorf("GetIndex %v from simple value", path)}
+}
+
+func (any *stringAny) Parse() *Iterator {
+ return nil
+}
+
+func (any *stringAny) ValueType() ValueType {
+ return StringValue
+}
+
+func (any *stringAny) MustBeValid() Any {
+ return any
+}
+
+func (any *stringAny) LastError() error {
+ return nil
+}
+
+func (any *stringAny) ToBool() bool {
+ str := any.ToString()
+ if str == "0" {
+ return false
+ }
+ for _, c := range str {
+ switch c {
+ case ' ', '\n', '\r', '\t':
+ default:
+ return true
+ }
+ }
+ return false
+}
+
+func (any *stringAny) ToInt() int {
+ return int(any.ToInt64())
+
+}
+
+func (any *stringAny) ToInt32() int32 {
+ return int32(any.ToInt64())
+}
+
+func (any *stringAny) ToInt64() int64 {
+ if any.val == "" {
+ return 0
+ }
+
+ flag := 1
+ startPos := 0
+ endPos := 0
+ if any.val[0] == '+' || any.val[0] == '-' {
+ startPos = 1
+ }
+
+ if any.val[0] == '-' {
+ flag = -1
+ }
+
+ for i := startPos; i < len(any.val); i++ {
+ if any.val[i] >= '0' && any.val[i] <= '9' {
+ endPos = i + 1
+ } else {
+ break
+ }
+ }
+ parsed, _ := strconv.ParseInt(any.val[startPos:endPos], 10, 64)
+ return int64(flag) * parsed
+}
+
+func (any *stringAny) ToUint() uint {
+ return uint(any.ToUint64())
+}
+
+func (any *stringAny) ToUint32() uint32 {
+ return uint32(any.ToUint64())
+}
+
+func (any *stringAny) ToUint64() uint64 {
+ if any.val == "" {
+ return 0
+ }
+
+ startPos := 0
+ endPos := 0
+
+ if any.val[0] == '-' {
+ return 0
+ }
+ if any.val[0] == '+' {
+ startPos = 1
+ }
+
+ for i := startPos; i < len(any.val); i++ {
+ if any.val[i] >= '0' && any.val[i] <= '9' {
+ endPos = i + 1
+ } else {
+ break
+ }
+ }
+ parsed, _ := strconv.ParseUint(any.val[startPos:endPos], 10, 64)
+ return parsed
+}
+
+func (any *stringAny) ToFloat32() float32 {
+ return float32(any.ToFloat64())
+}
+
+func (any *stringAny) ToFloat64() float64 {
+ if len(any.val) == 0 {
+ return 0
+ }
+
+ // first char invalid
+ if any.val[0] != '+' && any.val[0] != '-' && (any.val[0] > '9' || any.val[0] < '0') {
+ return 0
+ }
+
+ // extract valid num expression from string
+ // eg 123true => 123, -12.12xxa => -12.12
+ endPos := 1
+ for i := 1; i < len(any.val); i++ {
+ if any.val[i] == '.' || any.val[i] == 'e' || any.val[i] == 'E' || any.val[i] == '+' || any.val[i] == '-' {
+ endPos = i + 1
+ continue
+ }
+
+ // end position is the first char which is not digit
+ if any.val[i] >= '0' && any.val[i] <= '9' {
+ endPos = i + 1
+ } else {
+ endPos = i
+ break
+ }
+ }
+ parsed, _ := strconv.ParseFloat(any.val[:endPos], 64)
+ return parsed
+}
+
+func (any *stringAny) ToString() string {
+ return any.val
+}
+
+func (any *stringAny) WriteTo(stream *Stream) {
+ stream.WriteString(any.val)
+}
+
+func (any *stringAny) GetInterface() interface{} {
+ return any.val
+}
diff --git a/vendor/github.com/json-iterator/go/any_uint32.go b/vendor/github.com/json-iterator/go/any_uint32.go
new file mode 100644
index 000000000..656bbd33d
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_uint32.go
@@ -0,0 +1,74 @@
+package jsoniter
+
+import (
+ "strconv"
+)
+
+type uint32Any struct {
+ baseAny
+ val uint32
+}
+
+func (any *uint32Any) LastError() error {
+ return nil
+}
+
+func (any *uint32Any) ValueType() ValueType {
+ return NumberValue
+}
+
+func (any *uint32Any) MustBeValid() Any {
+ return any
+}
+
+func (any *uint32Any) ToBool() bool {
+ return any.val != 0
+}
+
+func (any *uint32Any) ToInt() int {
+ return int(any.val)
+}
+
+func (any *uint32Any) ToInt32() int32 {
+ return int32(any.val)
+}
+
+func (any *uint32Any) ToInt64() int64 {
+ return int64(any.val)
+}
+
+func (any *uint32Any) ToUint() uint {
+ return uint(any.val)
+}
+
+func (any *uint32Any) ToUint32() uint32 {
+ return any.val
+}
+
+func (any *uint32Any) ToUint64() uint64 {
+ return uint64(any.val)
+}
+
+func (any *uint32Any) ToFloat32() float32 {
+ return float32(any.val)
+}
+
+func (any *uint32Any) ToFloat64() float64 {
+ return float64(any.val)
+}
+
+func (any *uint32Any) ToString() string {
+ return strconv.FormatInt(int64(any.val), 10)
+}
+
+func (any *uint32Any) WriteTo(stream *Stream) {
+ stream.WriteUint32(any.val)
+}
+
+func (any *uint32Any) Parse() *Iterator {
+ return nil
+}
+
+func (any *uint32Any) GetInterface() interface{} {
+ return any.val
+}
diff --git a/vendor/github.com/json-iterator/go/any_uint64.go b/vendor/github.com/json-iterator/go/any_uint64.go
new file mode 100644
index 000000000..7df2fce33
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/any_uint64.go
@@ -0,0 +1,74 @@
+package jsoniter
+
+import (
+ "strconv"
+)
+
+type uint64Any struct {
+ baseAny
+ val uint64
+}
+
+func (any *uint64Any) LastError() error {
+ return nil
+}
+
+func (any *uint64Any) ValueType() ValueType {
+ return NumberValue
+}
+
+func (any *uint64Any) MustBeValid() Any {
+ return any
+}
+
+func (any *uint64Any) ToBool() bool {
+ return any.val != 0
+}
+
+func (any *uint64Any) ToInt() int {
+ return int(any.val)
+}
+
+func (any *uint64Any) ToInt32() int32 {
+ return int32(any.val)
+}
+
+func (any *uint64Any) ToInt64() int64 {
+ return int64(any.val)
+}
+
+func (any *uint64Any) ToUint() uint {
+ return uint(any.val)
+}
+
+func (any *uint64Any) ToUint32() uint32 {
+ return uint32(any.val)
+}
+
+func (any *uint64Any) ToUint64() uint64 {
+ return any.val
+}
+
+func (any *uint64Any) ToFloat32() float32 {
+ return float32(any.val)
+}
+
+func (any *uint64Any) ToFloat64() float64 {
+ return float64(any.val)
+}
+
+func (any *uint64Any) ToString() string {
+ return strconv.FormatUint(any.val, 10)
+}
+
+func (any *uint64Any) WriteTo(stream *Stream) {
+ stream.WriteUint64(any.val)
+}
+
+func (any *uint64Any) Parse() *Iterator {
+ return nil
+}
+
+func (any *uint64Any) GetInterface() interface{} {
+ return any.val
+}
diff --git a/vendor/github.com/json-iterator/go/build.sh b/vendor/github.com/json-iterator/go/build.sh
new file mode 100644
index 000000000..b45ef6883
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/build.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -e
+set -x
+
+if [ ! -d /tmp/build-golang/src/github.com/json-iterator ]; then
+ mkdir -p /tmp/build-golang/src/github.com/json-iterator
+ ln -s $PWD /tmp/build-golang/src/github.com/json-iterator/go
+fi
+export GOPATH=/tmp/build-golang
+go get -u github.com/golang/dep/cmd/dep
+cd /tmp/build-golang/src/github.com/json-iterator/go
+exec $GOPATH/bin/dep ensure -update
diff --git a/vendor/github.com/json-iterator/go/config.go b/vendor/github.com/json-iterator/go/config.go
new file mode 100644
index 000000000..8c58fcba5
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/config.go
@@ -0,0 +1,375 @@
+package jsoniter
+
+import (
+ "encoding/json"
+ "io"
+ "reflect"
+ "sync"
+ "unsafe"
+
+ "github.com/modern-go/concurrent"
+ "github.com/modern-go/reflect2"
+)
+
+// Config customize how the API should behave.
+// The API is created from Config by Froze.
+type Config struct {
+ IndentionStep int
+ MarshalFloatWith6Digits bool
+ EscapeHTML bool
+ SortMapKeys bool
+ UseNumber bool
+ DisallowUnknownFields bool
+ TagKey string
+ OnlyTaggedField bool
+ ValidateJsonRawMessage bool
+ ObjectFieldMustBeSimpleString bool
+ CaseSensitive bool
+}
+
+// API the public interface of this package.
+// Primary Marshal and Unmarshal.
+type API interface {
+ IteratorPool
+ StreamPool
+ MarshalToString(v interface{}) (string, error)
+ Marshal(v interface{}) ([]byte, error)
+ MarshalIndent(v interface{}, prefix, indent string) ([]byte, error)
+ UnmarshalFromString(str string, v interface{}) error
+ Unmarshal(data []byte, v interface{}) error
+ Get(data []byte, path ...interface{}) Any
+ NewEncoder(writer io.Writer) *Encoder
+ NewDecoder(reader io.Reader) *Decoder
+ Valid(data []byte) bool
+ RegisterExtension(extension Extension)
+ DecoderOf(typ reflect2.Type) ValDecoder
+ EncoderOf(typ reflect2.Type) ValEncoder
+}
+
+// ConfigDefault the default API
+var ConfigDefault = Config{
+ EscapeHTML: true,
+}.Froze()
+
+// ConfigCompatibleWithStandardLibrary tries to be 100% compatible with standard library behavior
+var ConfigCompatibleWithStandardLibrary = Config{
+ EscapeHTML: true,
+ SortMapKeys: true,
+ ValidateJsonRawMessage: true,
+}.Froze()
+
+// ConfigFastest marshals float with only 6 digits precision
+var ConfigFastest = Config{
+ EscapeHTML: false,
+ MarshalFloatWith6Digits: true, // will lose precession
+ ObjectFieldMustBeSimpleString: true, // do not unescape object field
+}.Froze()
+
+type frozenConfig struct {
+ configBeforeFrozen Config
+ sortMapKeys bool
+ indentionStep int
+ objectFieldMustBeSimpleString bool
+ onlyTaggedField bool
+ disallowUnknownFields bool
+ decoderCache *concurrent.Map
+ encoderCache *concurrent.Map
+ encoderExtension Extension
+ decoderExtension Extension
+ extraExtensions []Extension
+ streamPool *sync.Pool
+ iteratorPool *sync.Pool
+ caseSensitive bool
+}
+
+func (cfg *frozenConfig) initCache() {
+ cfg.decoderCache = concurrent.NewMap()
+ cfg.encoderCache = concurrent.NewMap()
+}
+
+func (cfg *frozenConfig) addDecoderToCache(cacheKey uintptr, decoder ValDecoder) {
+ cfg.decoderCache.Store(cacheKey, decoder)
+}
+
+func (cfg *frozenConfig) addEncoderToCache(cacheKey uintptr, encoder ValEncoder) {
+ cfg.encoderCache.Store(cacheKey, encoder)
+}
+
+func (cfg *frozenConfig) getDecoderFromCache(cacheKey uintptr) ValDecoder {
+ decoder, found := cfg.decoderCache.Load(cacheKey)
+ if found {
+ return decoder.(ValDecoder)
+ }
+ return nil
+}
+
+func (cfg *frozenConfig) getEncoderFromCache(cacheKey uintptr) ValEncoder {
+ encoder, found := cfg.encoderCache.Load(cacheKey)
+ if found {
+ return encoder.(ValEncoder)
+ }
+ return nil
+}
+
+var cfgCache = concurrent.NewMap()
+
+func getFrozenConfigFromCache(cfg Config) *frozenConfig {
+ obj, found := cfgCache.Load(cfg)
+ if found {
+ return obj.(*frozenConfig)
+ }
+ return nil
+}
+
+func addFrozenConfigToCache(cfg Config, frozenConfig *frozenConfig) {
+ cfgCache.Store(cfg, frozenConfig)
+}
+
+// Froze forge API from config
+func (cfg Config) Froze() API {
+ api := &frozenConfig{
+ sortMapKeys: cfg.SortMapKeys,
+ indentionStep: cfg.IndentionStep,
+ objectFieldMustBeSimpleString: cfg.ObjectFieldMustBeSimpleString,
+ onlyTaggedField: cfg.OnlyTaggedField,
+ disallowUnknownFields: cfg.DisallowUnknownFields,
+ caseSensitive: cfg.CaseSensitive,
+ }
+ api.streamPool = &sync.Pool{
+ New: func() interface{} {
+ return NewStream(api, nil, 512)
+ },
+ }
+ api.iteratorPool = &sync.Pool{
+ New: func() interface{} {
+ return NewIterator(api)
+ },
+ }
+ api.initCache()
+ encoderExtension := EncoderExtension{}
+ decoderExtension := DecoderExtension{}
+ if cfg.MarshalFloatWith6Digits {
+ api.marshalFloatWith6Digits(encoderExtension)
+ }
+ if cfg.EscapeHTML {
+ api.escapeHTML(encoderExtension)
+ }
+ if cfg.UseNumber {
+ api.useNumber(decoderExtension)
+ }
+ if cfg.ValidateJsonRawMessage {
+ api.validateJsonRawMessage(encoderExtension)
+ }
+ api.encoderExtension = encoderExtension
+ api.decoderExtension = decoderExtension
+ api.configBeforeFrozen = cfg
+ return api
+}
+
+func (cfg Config) frozeWithCacheReuse(extraExtensions []Extension) *frozenConfig {
+ api := getFrozenConfigFromCache(cfg)
+ if api != nil {
+ return api
+ }
+ api = cfg.Froze().(*frozenConfig)
+ for _, extension := range extraExtensions {
+ api.RegisterExtension(extension)
+ }
+ addFrozenConfigToCache(cfg, api)
+ return api
+}
+
+func (cfg *frozenConfig) validateJsonRawMessage(extension EncoderExtension) {
+ encoder := &funcEncoder{func(ptr unsafe.Pointer, stream *Stream) {
+ rawMessage := *(*json.RawMessage)(ptr)
+ iter := cfg.BorrowIterator([]byte(rawMessage))
+ iter.Read()
+ if iter.Error != nil {
+ stream.WriteRaw("null")
+ } else {
+ cfg.ReturnIterator(iter)
+ stream.WriteRaw(string(rawMessage))
+ }
+ }, func(ptr unsafe.Pointer) bool {
+ return len(*((*json.RawMessage)(ptr))) == 0
+ }}
+ extension[reflect2.TypeOfPtr((*json.RawMessage)(nil)).Elem()] = encoder
+ extension[reflect2.TypeOfPtr((*RawMessage)(nil)).Elem()] = encoder
+}
+
+func (cfg *frozenConfig) useNumber(extension DecoderExtension) {
+ extension[reflect2.TypeOfPtr((*interface{})(nil)).Elem()] = &funcDecoder{func(ptr unsafe.Pointer, iter *Iterator) {
+ exitingValue := *((*interface{})(ptr))
+ if exitingValue != nil && reflect.TypeOf(exitingValue).Kind() == reflect.Ptr {
+ iter.ReadVal(exitingValue)
+ return
+ }
+ if iter.WhatIsNext() == NumberValue {
+ *((*interface{})(ptr)) = json.Number(iter.readNumberAsString())
+ } else {
+ *((*interface{})(ptr)) = iter.Read()
+ }
+ }}
+}
+func (cfg *frozenConfig) getTagKey() string {
+ tagKey := cfg.configBeforeFrozen.TagKey
+ if tagKey == "" {
+ return "json"
+ }
+ return tagKey
+}
+
+func (cfg *frozenConfig) RegisterExtension(extension Extension) {
+ cfg.extraExtensions = append(cfg.extraExtensions, extension)
+ copied := cfg.configBeforeFrozen
+ cfg.configBeforeFrozen = copied
+}
+
+type lossyFloat32Encoder struct {
+}
+
+func (encoder *lossyFloat32Encoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteFloat32Lossy(*((*float32)(ptr)))
+}
+
+func (encoder *lossyFloat32Encoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*float32)(ptr)) == 0
+}
+
+type lossyFloat64Encoder struct {
+}
+
+func (encoder *lossyFloat64Encoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteFloat64Lossy(*((*float64)(ptr)))
+}
+
+func (encoder *lossyFloat64Encoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*float64)(ptr)) == 0
+}
+
+// EnableLossyFloatMarshalling keeps 10**(-6) precision
+// for float variables for better performance.
+func (cfg *frozenConfig) marshalFloatWith6Digits(extension EncoderExtension) {
+ // for better performance
+ extension[reflect2.TypeOfPtr((*float32)(nil)).Elem()] = &lossyFloat32Encoder{}
+ extension[reflect2.TypeOfPtr((*float64)(nil)).Elem()] = &lossyFloat64Encoder{}
+}
+
+type htmlEscapedStringEncoder struct {
+}
+
+func (encoder *htmlEscapedStringEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ str := *((*string)(ptr))
+ stream.WriteStringWithHTMLEscaped(str)
+}
+
+func (encoder *htmlEscapedStringEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*string)(ptr)) == ""
+}
+
+func (cfg *frozenConfig) escapeHTML(encoderExtension EncoderExtension) {
+ encoderExtension[reflect2.TypeOfPtr((*string)(nil)).Elem()] = &htmlEscapedStringEncoder{}
+}
+
+func (cfg *frozenConfig) cleanDecoders() {
+ typeDecoders = map[string]ValDecoder{}
+ fieldDecoders = map[string]ValDecoder{}
+ *cfg = *(cfg.configBeforeFrozen.Froze().(*frozenConfig))
+}
+
+func (cfg *frozenConfig) cleanEncoders() {
+ typeEncoders = map[string]ValEncoder{}
+ fieldEncoders = map[string]ValEncoder{}
+ *cfg = *(cfg.configBeforeFrozen.Froze().(*frozenConfig))
+}
+
+func (cfg *frozenConfig) MarshalToString(v interface{}) (string, error) {
+ stream := cfg.BorrowStream(nil)
+ defer cfg.ReturnStream(stream)
+ stream.WriteVal(v)
+ if stream.Error != nil {
+ return "", stream.Error
+ }
+ return string(stream.Buffer()), nil
+}
+
+func (cfg *frozenConfig) Marshal(v interface{}) ([]byte, error) {
+ stream := cfg.BorrowStream(nil)
+ defer cfg.ReturnStream(stream)
+ stream.WriteVal(v)
+ if stream.Error != nil {
+ return nil, stream.Error
+ }
+ result := stream.Buffer()
+ copied := make([]byte, len(result))
+ copy(copied, result)
+ return copied, nil
+}
+
+func (cfg *frozenConfig) MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
+ if prefix != "" {
+ panic("prefix is not supported")
+ }
+ for _, r := range indent {
+ if r != ' ' {
+ panic("indent can only be space")
+ }
+ }
+ newCfg := cfg.configBeforeFrozen
+ newCfg.IndentionStep = len(indent)
+ return newCfg.frozeWithCacheReuse(cfg.extraExtensions).Marshal(v)
+}
+
+func (cfg *frozenConfig) UnmarshalFromString(str string, v interface{}) error {
+ data := []byte(str)
+ iter := cfg.BorrowIterator(data)
+ defer cfg.ReturnIterator(iter)
+ iter.ReadVal(v)
+ c := iter.nextToken()
+ if c == 0 {
+ if iter.Error == io.EOF {
+ return nil
+ }
+ return iter.Error
+ }
+ iter.ReportError("Unmarshal", "there are bytes left after unmarshal")
+ return iter.Error
+}
+
+func (cfg *frozenConfig) Get(data []byte, path ...interface{}) Any {
+ iter := cfg.BorrowIterator(data)
+ defer cfg.ReturnIterator(iter)
+ return locatePath(iter, path)
+}
+
+func (cfg *frozenConfig) Unmarshal(data []byte, v interface{}) error {
+ iter := cfg.BorrowIterator(data)
+ defer cfg.ReturnIterator(iter)
+ iter.ReadVal(v)
+ c := iter.nextToken()
+ if c == 0 {
+ if iter.Error == io.EOF {
+ return nil
+ }
+ return iter.Error
+ }
+ iter.ReportError("Unmarshal", "there are bytes left after unmarshal")
+ return iter.Error
+}
+
+func (cfg *frozenConfig) NewEncoder(writer io.Writer) *Encoder {
+ stream := NewStream(cfg, writer, 512)
+ return &Encoder{stream}
+}
+
+func (cfg *frozenConfig) NewDecoder(reader io.Reader) *Decoder {
+ iter := Parse(cfg, reader, 512)
+ return &Decoder{iter}
+}
+
+func (cfg *frozenConfig) Valid(data []byte) bool {
+ iter := cfg.BorrowIterator(data)
+ defer cfg.ReturnIterator(iter)
+ iter.Skip()
+ return iter.Error == nil
+}
diff --git a/vendor/github.com/json-iterator/go/fuzzy_mode_convert_table.md b/vendor/github.com/json-iterator/go/fuzzy_mode_convert_table.md
new file mode 100644
index 000000000..3095662b0
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/fuzzy_mode_convert_table.md
@@ -0,0 +1,7 @@
+| json type \ dest type | bool | int | uint | float |string|
+| --- | --- | --- | --- |--|--|
+| number | positive => true
negative => true
zero => false| 23.2 => 23
-32.1 => -32| 12.1 => 12
-12.1 => 0|as normal|same as origin|
+| string | empty string => false
string "0" => false
other strings => true | "123.32" => 123
"-123.4" => -123
"123.23xxxw" => 123
"abcde12" => 0
"-32.1" => -32| 13.2 => 13
-1.1 => 0 |12.1 => 12.1
-12.3 => -12.3
12.4xxa => 12.4
+1.1e2 =>110 |same as origin|
+| bool | true => true
false => false| true => 1
false => 0 | true => 1
false => 0 |true => 1
false => 0|true => "true"
false => "false"|
+| object | true | 0 | 0 |0|originnal json|
+| array | empty array => false
nonempty array => true| [] => 0
[1,2] => 1 | [] => 0
[1,2] => 1 |[] => 0
[1,2] => 1|original json|
\ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/iter.go b/vendor/github.com/json-iterator/go/iter.go
new file mode 100644
index 000000000..95ae54fbf
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter.go
@@ -0,0 +1,322 @@
+package jsoniter
+
+import (
+ "encoding/json"
+ "fmt"
+ "io"
+)
+
+// ValueType the type for JSON element
+type ValueType int
+
+const (
+ // InvalidValue invalid JSON element
+ InvalidValue ValueType = iota
+ // StringValue JSON element "string"
+ StringValue
+ // NumberValue JSON element 100 or 0.10
+ NumberValue
+ // NilValue JSON element null
+ NilValue
+ // BoolValue JSON element true or false
+ BoolValue
+ // ArrayValue JSON element []
+ ArrayValue
+ // ObjectValue JSON element {}
+ ObjectValue
+)
+
+var hexDigits []byte
+var valueTypes []ValueType
+
+func init() {
+ hexDigits = make([]byte, 256)
+ for i := 0; i < len(hexDigits); i++ {
+ hexDigits[i] = 255
+ }
+ for i := '0'; i <= '9'; i++ {
+ hexDigits[i] = byte(i - '0')
+ }
+ for i := 'a'; i <= 'f'; i++ {
+ hexDigits[i] = byte((i - 'a') + 10)
+ }
+ for i := 'A'; i <= 'F'; i++ {
+ hexDigits[i] = byte((i - 'A') + 10)
+ }
+ valueTypes = make([]ValueType, 256)
+ for i := 0; i < len(valueTypes); i++ {
+ valueTypes[i] = InvalidValue
+ }
+ valueTypes['"'] = StringValue
+ valueTypes['-'] = NumberValue
+ valueTypes['0'] = NumberValue
+ valueTypes['1'] = NumberValue
+ valueTypes['2'] = NumberValue
+ valueTypes['3'] = NumberValue
+ valueTypes['4'] = NumberValue
+ valueTypes['5'] = NumberValue
+ valueTypes['6'] = NumberValue
+ valueTypes['7'] = NumberValue
+ valueTypes['8'] = NumberValue
+ valueTypes['9'] = NumberValue
+ valueTypes['t'] = BoolValue
+ valueTypes['f'] = BoolValue
+ valueTypes['n'] = NilValue
+ valueTypes['['] = ArrayValue
+ valueTypes['{'] = ObjectValue
+}
+
+// Iterator is a io.Reader like object, with JSON specific read functions.
+// Error is not returned as return value, but stored as Error member on this iterator instance.
+type Iterator struct {
+ cfg *frozenConfig
+ reader io.Reader
+ buf []byte
+ head int
+ tail int
+ captureStartedAt int
+ captured []byte
+ Error error
+ Attachment interface{} // open for customized decoder
+}
+
+// NewIterator creates an empty Iterator instance
+func NewIterator(cfg API) *Iterator {
+ return &Iterator{
+ cfg: cfg.(*frozenConfig),
+ reader: nil,
+ buf: nil,
+ head: 0,
+ tail: 0,
+ }
+}
+
+// Parse creates an Iterator instance from io.Reader
+func Parse(cfg API, reader io.Reader, bufSize int) *Iterator {
+ return &Iterator{
+ cfg: cfg.(*frozenConfig),
+ reader: reader,
+ buf: make([]byte, bufSize),
+ head: 0,
+ tail: 0,
+ }
+}
+
+// ParseBytes creates an Iterator instance from byte array
+func ParseBytes(cfg API, input []byte) *Iterator {
+ return &Iterator{
+ cfg: cfg.(*frozenConfig),
+ reader: nil,
+ buf: input,
+ head: 0,
+ tail: len(input),
+ }
+}
+
+// ParseString creates an Iterator instance from string
+func ParseString(cfg API, input string) *Iterator {
+ return ParseBytes(cfg, []byte(input))
+}
+
+// Pool returns a pool can provide more iterator with same configuration
+func (iter *Iterator) Pool() IteratorPool {
+ return iter.cfg
+}
+
+// Reset reuse iterator instance by specifying another reader
+func (iter *Iterator) Reset(reader io.Reader) *Iterator {
+ iter.reader = reader
+ iter.head = 0
+ iter.tail = 0
+ return iter
+}
+
+// ResetBytes reuse iterator instance by specifying another byte array as input
+func (iter *Iterator) ResetBytes(input []byte) *Iterator {
+ iter.reader = nil
+ iter.buf = input
+ iter.head = 0
+ iter.tail = len(input)
+ return iter
+}
+
+// WhatIsNext gets ValueType of relatively next json element
+func (iter *Iterator) WhatIsNext() ValueType {
+ valueType := valueTypes[iter.nextToken()]
+ iter.unreadByte()
+ return valueType
+}
+
+func (iter *Iterator) skipWhitespacesWithoutLoadMore() bool {
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ switch c {
+ case ' ', '\n', '\t', '\r':
+ continue
+ }
+ iter.head = i
+ return false
+ }
+ return true
+}
+
+func (iter *Iterator) isObjectEnd() bool {
+ c := iter.nextToken()
+ if c == ',' {
+ return false
+ }
+ if c == '}' {
+ return true
+ }
+ iter.ReportError("isObjectEnd", "object ended prematurely, unexpected char "+string([]byte{c}))
+ return true
+}
+
+func (iter *Iterator) nextToken() byte {
+ // a variation of skip whitespaces, returning the next non-whitespace token
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ switch c {
+ case ' ', '\n', '\t', '\r':
+ continue
+ }
+ iter.head = i + 1
+ return c
+ }
+ if !iter.loadMore() {
+ return 0
+ }
+ }
+}
+
+// ReportError record a error in iterator instance with current position.
+func (iter *Iterator) ReportError(operation string, msg string) {
+ if iter.Error != nil {
+ if iter.Error != io.EOF {
+ return
+ }
+ }
+ peekStart := iter.head - 10
+ if peekStart < 0 {
+ peekStart = 0
+ }
+ peekEnd := iter.head + 10
+ if peekEnd > iter.tail {
+ peekEnd = iter.tail
+ }
+ parsing := string(iter.buf[peekStart:peekEnd])
+ contextStart := iter.head - 50
+ if contextStart < 0 {
+ contextStart = 0
+ }
+ contextEnd := iter.head + 50
+ if contextEnd > iter.tail {
+ contextEnd = iter.tail
+ }
+ context := string(iter.buf[contextStart:contextEnd])
+ iter.Error = fmt.Errorf("%s: %s, error found in #%v byte of ...|%s|..., bigger context ...|%s|...",
+ operation, msg, iter.head-peekStart, parsing, context)
+}
+
+// CurrentBuffer gets current buffer as string for debugging purpose
+func (iter *Iterator) CurrentBuffer() string {
+ peekStart := iter.head - 10
+ if peekStart < 0 {
+ peekStart = 0
+ }
+ return fmt.Sprintf("parsing #%v byte, around ...|%s|..., whole buffer ...|%s|...", iter.head,
+ string(iter.buf[peekStart:iter.head]), string(iter.buf[0:iter.tail]))
+}
+
+func (iter *Iterator) readByte() (ret byte) {
+ if iter.head == iter.tail {
+ if iter.loadMore() {
+ ret = iter.buf[iter.head]
+ iter.head++
+ return ret
+ }
+ return 0
+ }
+ ret = iter.buf[iter.head]
+ iter.head++
+ return ret
+}
+
+func (iter *Iterator) loadMore() bool {
+ if iter.reader == nil {
+ if iter.Error == nil {
+ iter.head = iter.tail
+ iter.Error = io.EOF
+ }
+ return false
+ }
+ if iter.captured != nil {
+ iter.captured = append(iter.captured,
+ iter.buf[iter.captureStartedAt:iter.tail]...)
+ iter.captureStartedAt = 0
+ }
+ for {
+ n, err := iter.reader.Read(iter.buf)
+ if n == 0 {
+ if err != nil {
+ if iter.Error == nil {
+ iter.Error = err
+ }
+ return false
+ }
+ } else {
+ iter.head = 0
+ iter.tail = n
+ return true
+ }
+ }
+}
+
+func (iter *Iterator) unreadByte() {
+ if iter.Error != nil {
+ return
+ }
+ iter.head--
+ return
+}
+
+// Read read the next JSON element as generic interface{}.
+func (iter *Iterator) Read() interface{} {
+ valueType := iter.WhatIsNext()
+ switch valueType {
+ case StringValue:
+ return iter.ReadString()
+ case NumberValue:
+ if iter.cfg.configBeforeFrozen.UseNumber {
+ return json.Number(iter.readNumberAsString())
+ }
+ return iter.ReadFloat64()
+ case NilValue:
+ iter.skipFourBytes('n', 'u', 'l', 'l')
+ return nil
+ case BoolValue:
+ return iter.ReadBool()
+ case ArrayValue:
+ arr := []interface{}{}
+ iter.ReadArrayCB(func(iter *Iterator) bool {
+ var elem interface{}
+ iter.ReadVal(&elem)
+ arr = append(arr, elem)
+ return true
+ })
+ return arr
+ case ObjectValue:
+ obj := map[string]interface{}{}
+ iter.ReadMapCB(func(Iter *Iterator, field string) bool {
+ var elem interface{}
+ iter.ReadVal(&elem)
+ obj[field] = elem
+ return true
+ })
+ return obj
+ default:
+ iter.ReportError("Read", fmt.Sprintf("unexpected value type: %v", valueType))
+ return nil
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/iter_array.go b/vendor/github.com/json-iterator/go/iter_array.go
new file mode 100644
index 000000000..6188cb457
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_array.go
@@ -0,0 +1,58 @@
+package jsoniter
+
+// ReadArray read array element, tells if the array has more element to read.
+func (iter *Iterator) ReadArray() (ret bool) {
+ c := iter.nextToken()
+ switch c {
+ case 'n':
+ iter.skipThreeBytes('u', 'l', 'l')
+ return false // null
+ case '[':
+ c = iter.nextToken()
+ if c != ']' {
+ iter.unreadByte()
+ return true
+ }
+ return false
+ case ']':
+ return false
+ case ',':
+ return true
+ default:
+ iter.ReportError("ReadArray", "expect [ or , or ] or n, but found "+string([]byte{c}))
+ return
+ }
+}
+
+// ReadArrayCB read array with callback
+func (iter *Iterator) ReadArrayCB(callback func(*Iterator) bool) (ret bool) {
+ c := iter.nextToken()
+ if c == '[' {
+ c = iter.nextToken()
+ if c != ']' {
+ iter.unreadByte()
+ if !callback(iter) {
+ return false
+ }
+ c = iter.nextToken()
+ for c == ',' {
+ if !callback(iter) {
+ return false
+ }
+ c = iter.nextToken()
+ }
+ if c != ']' {
+ iter.ReportError("ReadArrayCB", "expect ] in the end, but found "+string([]byte{c}))
+ return false
+ }
+ return true
+ }
+ return true
+ }
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ return true // null
+ }
+ iter.ReportError("ReadArrayCB", "expect [ or n, but found "+string([]byte{c}))
+ return false
+}
diff --git a/vendor/github.com/json-iterator/go/iter_float.go b/vendor/github.com/json-iterator/go/iter_float.go
new file mode 100644
index 000000000..4f883c095
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_float.go
@@ -0,0 +1,347 @@
+package jsoniter
+
+import (
+ "encoding/json"
+ "io"
+ "math/big"
+ "strconv"
+ "strings"
+ "unsafe"
+)
+
+var floatDigits []int8
+
+const invalidCharForNumber = int8(-1)
+const endOfNumber = int8(-2)
+const dotInNumber = int8(-3)
+
+func init() {
+ floatDigits = make([]int8, 256)
+ for i := 0; i < len(floatDigits); i++ {
+ floatDigits[i] = invalidCharForNumber
+ }
+ for i := int8('0'); i <= int8('9'); i++ {
+ floatDigits[i] = i - int8('0')
+ }
+ floatDigits[','] = endOfNumber
+ floatDigits[']'] = endOfNumber
+ floatDigits['}'] = endOfNumber
+ floatDigits[' '] = endOfNumber
+ floatDigits['\t'] = endOfNumber
+ floatDigits['\n'] = endOfNumber
+ floatDigits['.'] = dotInNumber
+}
+
+// ReadBigFloat read big.Float
+func (iter *Iterator) ReadBigFloat() (ret *big.Float) {
+ str := iter.readNumberAsString()
+ if iter.Error != nil && iter.Error != io.EOF {
+ return nil
+ }
+ prec := 64
+ if len(str) > prec {
+ prec = len(str)
+ }
+ val, _, err := big.ParseFloat(str, 10, uint(prec), big.ToZero)
+ if err != nil {
+ iter.Error = err
+ return nil
+ }
+ return val
+}
+
+// ReadBigInt read big.Int
+func (iter *Iterator) ReadBigInt() (ret *big.Int) {
+ str := iter.readNumberAsString()
+ if iter.Error != nil && iter.Error != io.EOF {
+ return nil
+ }
+ ret = big.NewInt(0)
+ var success bool
+ ret, success = ret.SetString(str, 10)
+ if !success {
+ iter.ReportError("ReadBigInt", "invalid big int")
+ return nil
+ }
+ return ret
+}
+
+//ReadFloat32 read float32
+func (iter *Iterator) ReadFloat32() (ret float32) {
+ c := iter.nextToken()
+ if c == '-' {
+ return -iter.readPositiveFloat32()
+ }
+ iter.unreadByte()
+ return iter.readPositiveFloat32()
+}
+
+func (iter *Iterator) readPositiveFloat32() (ret float32) {
+ value := uint64(0)
+ c := byte(' ')
+ i := iter.head
+ // first char
+ if i == iter.tail {
+ return iter.readFloat32SlowPath()
+ }
+ c = iter.buf[i]
+ i++
+ ind := floatDigits[c]
+ switch ind {
+ case invalidCharForNumber:
+ return iter.readFloat32SlowPath()
+ case endOfNumber:
+ iter.ReportError("readFloat32", "empty number")
+ return
+ case dotInNumber:
+ iter.ReportError("readFloat32", "leading dot is invalid")
+ return
+ case 0:
+ if i == iter.tail {
+ return iter.readFloat32SlowPath()
+ }
+ c = iter.buf[i]
+ switch c {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ iter.ReportError("readFloat32", "leading zero is invalid")
+ return
+ }
+ }
+ value = uint64(ind)
+ // chars before dot
+non_decimal_loop:
+ for ; i < iter.tail; i++ {
+ c = iter.buf[i]
+ ind := floatDigits[c]
+ switch ind {
+ case invalidCharForNumber:
+ return iter.readFloat32SlowPath()
+ case endOfNumber:
+ iter.head = i
+ return float32(value)
+ case dotInNumber:
+ break non_decimal_loop
+ }
+ if value > uint64SafeToMultiple10 {
+ return iter.readFloat32SlowPath()
+ }
+ value = (value << 3) + (value << 1) + uint64(ind) // value = value * 10 + ind;
+ }
+ // chars after dot
+ if c == '.' {
+ i++
+ decimalPlaces := 0
+ if i == iter.tail {
+ return iter.readFloat32SlowPath()
+ }
+ for ; i < iter.tail; i++ {
+ c = iter.buf[i]
+ ind := floatDigits[c]
+ switch ind {
+ case endOfNumber:
+ if decimalPlaces > 0 && decimalPlaces < len(pow10) {
+ iter.head = i
+ return float32(float64(value) / float64(pow10[decimalPlaces]))
+ }
+ // too many decimal places
+ return iter.readFloat32SlowPath()
+ case invalidCharForNumber:
+ fallthrough
+ case dotInNumber:
+ return iter.readFloat32SlowPath()
+ }
+ decimalPlaces++
+ if value > uint64SafeToMultiple10 {
+ return iter.readFloat32SlowPath()
+ }
+ value = (value << 3) + (value << 1) + uint64(ind)
+ }
+ }
+ return iter.readFloat32SlowPath()
+}
+
+func (iter *Iterator) readNumberAsString() (ret string) {
+ strBuf := [16]byte{}
+ str := strBuf[0:0]
+load_loop:
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ switch c {
+ case '+', '-', '.', 'e', 'E', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ str = append(str, c)
+ continue
+ default:
+ iter.head = i
+ break load_loop
+ }
+ }
+ if !iter.loadMore() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ return
+ }
+ if len(str) == 0 {
+ iter.ReportError("readNumberAsString", "invalid number")
+ }
+ return *(*string)(unsafe.Pointer(&str))
+}
+
+func (iter *Iterator) readFloat32SlowPath() (ret float32) {
+ str := iter.readNumberAsString()
+ if iter.Error != nil && iter.Error != io.EOF {
+ return
+ }
+ errMsg := validateFloat(str)
+ if errMsg != "" {
+ iter.ReportError("readFloat32SlowPath", errMsg)
+ return
+ }
+ val, err := strconv.ParseFloat(str, 32)
+ if err != nil {
+ iter.Error = err
+ return
+ }
+ return float32(val)
+}
+
+// ReadFloat64 read float64
+func (iter *Iterator) ReadFloat64() (ret float64) {
+ c := iter.nextToken()
+ if c == '-' {
+ return -iter.readPositiveFloat64()
+ }
+ iter.unreadByte()
+ return iter.readPositiveFloat64()
+}
+
+func (iter *Iterator) readPositiveFloat64() (ret float64) {
+ value := uint64(0)
+ c := byte(' ')
+ i := iter.head
+ // first char
+ if i == iter.tail {
+ return iter.readFloat64SlowPath()
+ }
+ c = iter.buf[i]
+ i++
+ ind := floatDigits[c]
+ switch ind {
+ case invalidCharForNumber:
+ return iter.readFloat64SlowPath()
+ case endOfNumber:
+ iter.ReportError("readFloat64", "empty number")
+ return
+ case dotInNumber:
+ iter.ReportError("readFloat64", "leading dot is invalid")
+ return
+ case 0:
+ if i == iter.tail {
+ return iter.readFloat64SlowPath()
+ }
+ c = iter.buf[i]
+ switch c {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ iter.ReportError("readFloat64", "leading zero is invalid")
+ return
+ }
+ }
+ value = uint64(ind)
+ // chars before dot
+non_decimal_loop:
+ for ; i < iter.tail; i++ {
+ c = iter.buf[i]
+ ind := floatDigits[c]
+ switch ind {
+ case invalidCharForNumber:
+ return iter.readFloat64SlowPath()
+ case endOfNumber:
+ iter.head = i
+ return float64(value)
+ case dotInNumber:
+ break non_decimal_loop
+ }
+ if value > uint64SafeToMultiple10 {
+ return iter.readFloat64SlowPath()
+ }
+ value = (value << 3) + (value << 1) + uint64(ind) // value = value * 10 + ind;
+ }
+ // chars after dot
+ if c == '.' {
+ i++
+ decimalPlaces := 0
+ if i == iter.tail {
+ return iter.readFloat64SlowPath()
+ }
+ for ; i < iter.tail; i++ {
+ c = iter.buf[i]
+ ind := floatDigits[c]
+ switch ind {
+ case endOfNumber:
+ if decimalPlaces > 0 && decimalPlaces < len(pow10) {
+ iter.head = i
+ return float64(value) / float64(pow10[decimalPlaces])
+ }
+ // too many decimal places
+ return iter.readFloat64SlowPath()
+ case invalidCharForNumber:
+ fallthrough
+ case dotInNumber:
+ return iter.readFloat64SlowPath()
+ }
+ decimalPlaces++
+ if value > uint64SafeToMultiple10 {
+ return iter.readFloat64SlowPath()
+ }
+ value = (value << 3) + (value << 1) + uint64(ind)
+ }
+ }
+ return iter.readFloat64SlowPath()
+}
+
+func (iter *Iterator) readFloat64SlowPath() (ret float64) {
+ str := iter.readNumberAsString()
+ if iter.Error != nil && iter.Error != io.EOF {
+ return
+ }
+ errMsg := validateFloat(str)
+ if errMsg != "" {
+ iter.ReportError("readFloat64SlowPath", errMsg)
+ return
+ }
+ val, err := strconv.ParseFloat(str, 64)
+ if err != nil {
+ iter.Error = err
+ return
+ }
+ return val
+}
+
+func validateFloat(str string) string {
+ // strconv.ParseFloat is not validating `1.` or `1.e1`
+ if len(str) == 0 {
+ return "empty number"
+ }
+ if str[0] == '-' {
+ return "-- is not valid"
+ }
+ dotPos := strings.IndexByte(str, '.')
+ if dotPos != -1 {
+ if dotPos == len(str)-1 {
+ return "dot can not be last character"
+ }
+ switch str[dotPos+1] {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ default:
+ return "missing digit after dot"
+ }
+ }
+ return ""
+}
+
+// ReadNumber read json.Number
+func (iter *Iterator) ReadNumber() (ret json.Number) {
+ return json.Number(iter.readNumberAsString())
+}
diff --git a/vendor/github.com/json-iterator/go/iter_int.go b/vendor/github.com/json-iterator/go/iter_int.go
new file mode 100644
index 000000000..214232035
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_int.go
@@ -0,0 +1,345 @@
+package jsoniter
+
+import (
+ "math"
+ "strconv"
+)
+
+var intDigits []int8
+
+const uint32SafeToMultiply10 = uint32(0xffffffff)/10 - 1
+const uint64SafeToMultiple10 = uint64(0xffffffffffffffff)/10 - 1
+
+func init() {
+ intDigits = make([]int8, 256)
+ for i := 0; i < len(intDigits); i++ {
+ intDigits[i] = invalidCharForNumber
+ }
+ for i := int8('0'); i <= int8('9'); i++ {
+ intDigits[i] = i - int8('0')
+ }
+}
+
+// ReadUint read uint
+func (iter *Iterator) ReadUint() uint {
+ if strconv.IntSize == 32 {
+ return uint(iter.ReadUint32())
+ }
+ return uint(iter.ReadUint64())
+}
+
+// ReadInt read int
+func (iter *Iterator) ReadInt() int {
+ if strconv.IntSize == 32 {
+ return int(iter.ReadInt32())
+ }
+ return int(iter.ReadInt64())
+}
+
+// ReadInt8 read int8
+func (iter *Iterator) ReadInt8() (ret int8) {
+ c := iter.nextToken()
+ if c == '-' {
+ val := iter.readUint32(iter.readByte())
+ if val > math.MaxInt8+1 {
+ iter.ReportError("ReadInt8", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return -int8(val)
+ }
+ val := iter.readUint32(c)
+ if val > math.MaxInt8 {
+ iter.ReportError("ReadInt8", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return int8(val)
+}
+
+// ReadUint8 read uint8
+func (iter *Iterator) ReadUint8() (ret uint8) {
+ val := iter.readUint32(iter.nextToken())
+ if val > math.MaxUint8 {
+ iter.ReportError("ReadUint8", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return uint8(val)
+}
+
+// ReadInt16 read int16
+func (iter *Iterator) ReadInt16() (ret int16) {
+ c := iter.nextToken()
+ if c == '-' {
+ val := iter.readUint32(iter.readByte())
+ if val > math.MaxInt16+1 {
+ iter.ReportError("ReadInt16", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return -int16(val)
+ }
+ val := iter.readUint32(c)
+ if val > math.MaxInt16 {
+ iter.ReportError("ReadInt16", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return int16(val)
+}
+
+// ReadUint16 read uint16
+func (iter *Iterator) ReadUint16() (ret uint16) {
+ val := iter.readUint32(iter.nextToken())
+ if val > math.MaxUint16 {
+ iter.ReportError("ReadUint16", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return uint16(val)
+}
+
+// ReadInt32 read int32
+func (iter *Iterator) ReadInt32() (ret int32) {
+ c := iter.nextToken()
+ if c == '-' {
+ val := iter.readUint32(iter.readByte())
+ if val > math.MaxInt32+1 {
+ iter.ReportError("ReadInt32", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return -int32(val)
+ }
+ val := iter.readUint32(c)
+ if val > math.MaxInt32 {
+ iter.ReportError("ReadInt32", "overflow: "+strconv.FormatInt(int64(val), 10))
+ return
+ }
+ return int32(val)
+}
+
+// ReadUint32 read uint32
+func (iter *Iterator) ReadUint32() (ret uint32) {
+ return iter.readUint32(iter.nextToken())
+}
+
+func (iter *Iterator) readUint32(c byte) (ret uint32) {
+ ind := intDigits[c]
+ if ind == 0 {
+ iter.assertInteger()
+ return 0 // single zero
+ }
+ if ind == invalidCharForNumber {
+ iter.ReportError("readUint32", "unexpected character: "+string([]byte{byte(ind)}))
+ return
+ }
+ value := uint32(ind)
+ if iter.tail-iter.head > 10 {
+ i := iter.head
+ ind2 := intDigits[iter.buf[i]]
+ if ind2 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value
+ }
+ i++
+ ind3 := intDigits[iter.buf[i]]
+ if ind3 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*10 + uint32(ind2)
+ }
+ //iter.head = i + 1
+ //value = value * 100 + uint32(ind2) * 10 + uint32(ind3)
+ i++
+ ind4 := intDigits[iter.buf[i]]
+ if ind4 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*100 + uint32(ind2)*10 + uint32(ind3)
+ }
+ i++
+ ind5 := intDigits[iter.buf[i]]
+ if ind5 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*1000 + uint32(ind2)*100 + uint32(ind3)*10 + uint32(ind4)
+ }
+ i++
+ ind6 := intDigits[iter.buf[i]]
+ if ind6 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*10000 + uint32(ind2)*1000 + uint32(ind3)*100 + uint32(ind4)*10 + uint32(ind5)
+ }
+ i++
+ ind7 := intDigits[iter.buf[i]]
+ if ind7 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*100000 + uint32(ind2)*10000 + uint32(ind3)*1000 + uint32(ind4)*100 + uint32(ind5)*10 + uint32(ind6)
+ }
+ i++
+ ind8 := intDigits[iter.buf[i]]
+ if ind8 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*1000000 + uint32(ind2)*100000 + uint32(ind3)*10000 + uint32(ind4)*1000 + uint32(ind5)*100 + uint32(ind6)*10 + uint32(ind7)
+ }
+ i++
+ ind9 := intDigits[iter.buf[i]]
+ value = value*10000000 + uint32(ind2)*1000000 + uint32(ind3)*100000 + uint32(ind4)*10000 + uint32(ind5)*1000 + uint32(ind6)*100 + uint32(ind7)*10 + uint32(ind8)
+ iter.head = i
+ if ind9 == invalidCharForNumber {
+ iter.assertInteger()
+ return value
+ }
+ }
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ ind = intDigits[iter.buf[i]]
+ if ind == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value
+ }
+ if value > uint32SafeToMultiply10 {
+ value2 := (value << 3) + (value << 1) + uint32(ind)
+ if value2 < value {
+ iter.ReportError("readUint32", "overflow")
+ return
+ }
+ value = value2
+ continue
+ }
+ value = (value << 3) + (value << 1) + uint32(ind)
+ }
+ if !iter.loadMore() {
+ iter.assertInteger()
+ return value
+ }
+ }
+}
+
+// ReadInt64 read int64
+func (iter *Iterator) ReadInt64() (ret int64) {
+ c := iter.nextToken()
+ if c == '-' {
+ val := iter.readUint64(iter.readByte())
+ if val > math.MaxInt64+1 {
+ iter.ReportError("ReadInt64", "overflow: "+strconv.FormatUint(uint64(val), 10))
+ return
+ }
+ return -int64(val)
+ }
+ val := iter.readUint64(c)
+ if val > math.MaxInt64 {
+ iter.ReportError("ReadInt64", "overflow: "+strconv.FormatUint(uint64(val), 10))
+ return
+ }
+ return int64(val)
+}
+
+// ReadUint64 read uint64
+func (iter *Iterator) ReadUint64() uint64 {
+ return iter.readUint64(iter.nextToken())
+}
+
+func (iter *Iterator) readUint64(c byte) (ret uint64) {
+ ind := intDigits[c]
+ if ind == 0 {
+ iter.assertInteger()
+ return 0 // single zero
+ }
+ if ind == invalidCharForNumber {
+ iter.ReportError("readUint64", "unexpected character: "+string([]byte{byte(ind)}))
+ return
+ }
+ value := uint64(ind)
+ if iter.tail-iter.head > 10 {
+ i := iter.head
+ ind2 := intDigits[iter.buf[i]]
+ if ind2 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value
+ }
+ i++
+ ind3 := intDigits[iter.buf[i]]
+ if ind3 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*10 + uint64(ind2)
+ }
+ //iter.head = i + 1
+ //value = value * 100 + uint32(ind2) * 10 + uint32(ind3)
+ i++
+ ind4 := intDigits[iter.buf[i]]
+ if ind4 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*100 + uint64(ind2)*10 + uint64(ind3)
+ }
+ i++
+ ind5 := intDigits[iter.buf[i]]
+ if ind5 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*1000 + uint64(ind2)*100 + uint64(ind3)*10 + uint64(ind4)
+ }
+ i++
+ ind6 := intDigits[iter.buf[i]]
+ if ind6 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*10000 + uint64(ind2)*1000 + uint64(ind3)*100 + uint64(ind4)*10 + uint64(ind5)
+ }
+ i++
+ ind7 := intDigits[iter.buf[i]]
+ if ind7 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*100000 + uint64(ind2)*10000 + uint64(ind3)*1000 + uint64(ind4)*100 + uint64(ind5)*10 + uint64(ind6)
+ }
+ i++
+ ind8 := intDigits[iter.buf[i]]
+ if ind8 == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value*1000000 + uint64(ind2)*100000 + uint64(ind3)*10000 + uint64(ind4)*1000 + uint64(ind5)*100 + uint64(ind6)*10 + uint64(ind7)
+ }
+ i++
+ ind9 := intDigits[iter.buf[i]]
+ value = value*10000000 + uint64(ind2)*1000000 + uint64(ind3)*100000 + uint64(ind4)*10000 + uint64(ind5)*1000 + uint64(ind6)*100 + uint64(ind7)*10 + uint64(ind8)
+ iter.head = i
+ if ind9 == invalidCharForNumber {
+ iter.assertInteger()
+ return value
+ }
+ }
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ ind = intDigits[iter.buf[i]]
+ if ind == invalidCharForNumber {
+ iter.head = i
+ iter.assertInteger()
+ return value
+ }
+ if value > uint64SafeToMultiple10 {
+ value2 := (value << 3) + (value << 1) + uint64(ind)
+ if value2 < value {
+ iter.ReportError("readUint64", "overflow")
+ return
+ }
+ value = value2
+ continue
+ }
+ value = (value << 3) + (value << 1) + uint64(ind)
+ }
+ if !iter.loadMore() {
+ iter.assertInteger()
+ return value
+ }
+ }
+}
+
+func (iter *Iterator) assertInteger() {
+ if iter.head < len(iter.buf) && iter.buf[iter.head] == '.' {
+ iter.ReportError("assertInteger", "can not decode float as int")
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/iter_object.go b/vendor/github.com/json-iterator/go/iter_object.go
new file mode 100644
index 000000000..1c5757671
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_object.go
@@ -0,0 +1,251 @@
+package jsoniter
+
+import (
+ "fmt"
+ "strings"
+)
+
+// ReadObject read one field from object.
+// If object ended, returns empty string.
+// Otherwise, returns the field name.
+func (iter *Iterator) ReadObject() (ret string) {
+ c := iter.nextToken()
+ switch c {
+ case 'n':
+ iter.skipThreeBytes('u', 'l', 'l')
+ return "" // null
+ case '{':
+ c = iter.nextToken()
+ if c == '"' {
+ iter.unreadByte()
+ field := iter.ReadString()
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadObject", "expect : after object field, but found "+string([]byte{c}))
+ }
+ return field
+ }
+ if c == '}' {
+ return "" // end of object
+ }
+ iter.ReportError("ReadObject", `expect " after {, but found `+string([]byte{c}))
+ return
+ case ',':
+ field := iter.ReadString()
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadObject", "expect : after object field, but found "+string([]byte{c}))
+ }
+ return field
+ case '}':
+ return "" // end of object
+ default:
+ iter.ReportError("ReadObject", fmt.Sprintf(`expect { or , or } or n, but found %s`, string([]byte{c})))
+ return
+ }
+}
+
+// CaseInsensitive
+func (iter *Iterator) readFieldHash() int64 {
+ hash := int64(0x811c9dc5)
+ c := iter.nextToken()
+ if c != '"' {
+ iter.ReportError("readFieldHash", `expect ", but found `+string([]byte{c}))
+ return 0
+ }
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ // require ascii string and no escape
+ b := iter.buf[i]
+ if b == '\\' {
+ iter.head = i
+ for _, b := range iter.readStringSlowPath() {
+ if 'A' <= b && b <= 'Z' && !iter.cfg.caseSensitive {
+ b += 'a' - 'A'
+ }
+ hash ^= int64(b)
+ hash *= 0x1000193
+ }
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("readFieldHash", `expect :, but found `+string([]byte{c}))
+ return 0
+ }
+ return hash
+ }
+ if b == '"' {
+ iter.head = i + 1
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("readFieldHash", `expect :, but found `+string([]byte{c}))
+ return 0
+ }
+ return hash
+ }
+ if 'A' <= b && b <= 'Z' && !iter.cfg.caseSensitive {
+ b += 'a' - 'A'
+ }
+ hash ^= int64(b)
+ hash *= 0x1000193
+ }
+ if !iter.loadMore() {
+ iter.ReportError("readFieldHash", `incomplete field name`)
+ return 0
+ }
+ }
+}
+
+func calcHash(str string, caseSensitive bool) int64 {
+ if !caseSensitive {
+ str = strings.ToLower(str)
+ }
+ hash := int64(0x811c9dc5)
+ for _, b := range []byte(str) {
+ hash ^= int64(b)
+ hash *= 0x1000193
+ }
+ return int64(hash)
+}
+
+// ReadObjectCB read object with callback, the key is ascii only and field name not copied
+func (iter *Iterator) ReadObjectCB(callback func(*Iterator, string) bool) bool {
+ c := iter.nextToken()
+ var field string
+ if c == '{' {
+ c = iter.nextToken()
+ if c == '"' {
+ iter.unreadByte()
+ field = iter.ReadString()
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadObject", "expect : after object field, but found "+string([]byte{c}))
+ }
+ if !callback(iter, field) {
+ return false
+ }
+ c = iter.nextToken()
+ for c == ',' {
+ field = iter.ReadString()
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadObject", "expect : after object field, but found "+string([]byte{c}))
+ }
+ if !callback(iter, field) {
+ return false
+ }
+ c = iter.nextToken()
+ }
+ if c != '}' {
+ iter.ReportError("ReadObjectCB", `object not ended with }`)
+ return false
+ }
+ return true
+ }
+ if c == '}' {
+ return true
+ }
+ iter.ReportError("ReadObjectCB", `expect " after }, but found `+string([]byte{c}))
+ return false
+ }
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ return true // null
+ }
+ iter.ReportError("ReadObjectCB", `expect { or n, but found `+string([]byte{c}))
+ return false
+}
+
+// ReadMapCB read map with callback, the key can be any string
+func (iter *Iterator) ReadMapCB(callback func(*Iterator, string) bool) bool {
+ c := iter.nextToken()
+ if c == '{' {
+ c = iter.nextToken()
+ if c == '"' {
+ iter.unreadByte()
+ field := iter.ReadString()
+ if iter.nextToken() != ':' {
+ iter.ReportError("ReadMapCB", "expect : after object field, but found "+string([]byte{c}))
+ return false
+ }
+ if !callback(iter, field) {
+ return false
+ }
+ c = iter.nextToken()
+ for c == ',' {
+ field = iter.ReadString()
+ if iter.nextToken() != ':' {
+ iter.ReportError("ReadMapCB", "expect : after object field, but found "+string([]byte{c}))
+ return false
+ }
+ if !callback(iter, field) {
+ return false
+ }
+ c = iter.nextToken()
+ }
+ if c != '}' {
+ iter.ReportError("ReadMapCB", `object not ended with }`)
+ return false
+ }
+ return true
+ }
+ if c == '}' {
+ return true
+ }
+ iter.ReportError("ReadMapCB", `expect " after }, but found `+string([]byte{c}))
+ return false
+ }
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ return true // null
+ }
+ iter.ReportError("ReadMapCB", `expect { or n, but found `+string([]byte{c}))
+ return false
+}
+
+func (iter *Iterator) readObjectStart() bool {
+ c := iter.nextToken()
+ if c == '{' {
+ c = iter.nextToken()
+ if c == '}' {
+ return false
+ }
+ iter.unreadByte()
+ return true
+ } else if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ return false
+ }
+ iter.ReportError("readObjectStart", "expect { or n, but found "+string([]byte{c}))
+ return false
+}
+
+func (iter *Iterator) readObjectFieldAsBytes() (ret []byte) {
+ str := iter.ReadStringAsSlice()
+ if iter.skipWhitespacesWithoutLoadMore() {
+ if ret == nil {
+ ret = make([]byte, len(str))
+ copy(ret, str)
+ }
+ if !iter.loadMore() {
+ return
+ }
+ }
+ if iter.buf[iter.head] != ':' {
+ iter.ReportError("readObjectFieldAsBytes", "expect : after object field, but found "+string([]byte{iter.buf[iter.head]}))
+ return
+ }
+ iter.head++
+ if iter.skipWhitespacesWithoutLoadMore() {
+ if ret == nil {
+ ret = make([]byte, len(str))
+ copy(ret, str)
+ }
+ if !iter.loadMore() {
+ return
+ }
+ }
+ if ret == nil {
+ return str
+ }
+ return ret
+}
diff --git a/vendor/github.com/json-iterator/go/iter_skip.go b/vendor/github.com/json-iterator/go/iter_skip.go
new file mode 100644
index 000000000..f58beb913
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_skip.go
@@ -0,0 +1,129 @@
+package jsoniter
+
+import "fmt"
+
+// ReadNil reads a json object as nil and
+// returns whether it's a nil or not
+func (iter *Iterator) ReadNil() (ret bool) {
+ c := iter.nextToken()
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l') // null
+ return true
+ }
+ iter.unreadByte()
+ return false
+}
+
+// ReadBool reads a json object as BoolValue
+func (iter *Iterator) ReadBool() (ret bool) {
+ c := iter.nextToken()
+ if c == 't' {
+ iter.skipThreeBytes('r', 'u', 'e')
+ return true
+ }
+ if c == 'f' {
+ iter.skipFourBytes('a', 'l', 's', 'e')
+ return false
+ }
+ iter.ReportError("ReadBool", "expect t or f, but found "+string([]byte{c}))
+ return
+}
+
+// SkipAndReturnBytes skip next JSON element, and return its content as []byte.
+// The []byte can be kept, it is a copy of data.
+func (iter *Iterator) SkipAndReturnBytes() []byte {
+ iter.startCapture(iter.head)
+ iter.Skip()
+ return iter.stopCapture()
+}
+
+type captureBuffer struct {
+ startedAt int
+ captured []byte
+}
+
+func (iter *Iterator) startCapture(captureStartedAt int) {
+ if iter.captured != nil {
+ panic("already in capture mode")
+ }
+ iter.captureStartedAt = captureStartedAt
+ iter.captured = make([]byte, 0, 32)
+}
+
+func (iter *Iterator) stopCapture() []byte {
+ if iter.captured == nil {
+ panic("not in capture mode")
+ }
+ captured := iter.captured
+ remaining := iter.buf[iter.captureStartedAt:iter.head]
+ iter.captureStartedAt = -1
+ iter.captured = nil
+ if len(captured) == 0 {
+ copied := make([]byte, len(remaining))
+ copy(copied, remaining)
+ return copied
+ }
+ captured = append(captured, remaining...)
+ return captured
+}
+
+// Skip skips a json object and positions to relatively the next json object
+func (iter *Iterator) Skip() {
+ c := iter.nextToken()
+ switch c {
+ case '"':
+ iter.skipString()
+ case 'n':
+ iter.skipThreeBytes('u', 'l', 'l') // null
+ case 't':
+ iter.skipThreeBytes('r', 'u', 'e') // true
+ case 'f':
+ iter.skipFourBytes('a', 'l', 's', 'e') // false
+ case '0':
+ iter.unreadByte()
+ iter.ReadFloat32()
+ case '-', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ iter.skipNumber()
+ case '[':
+ iter.skipArray()
+ case '{':
+ iter.skipObject()
+ default:
+ iter.ReportError("Skip", fmt.Sprintf("do not know how to skip: %v", c))
+ return
+ }
+}
+
+func (iter *Iterator) skipFourBytes(b1, b2, b3, b4 byte) {
+ if iter.readByte() != b1 {
+ iter.ReportError("skipFourBytes", fmt.Sprintf("expect %s", string([]byte{b1, b2, b3, b4})))
+ return
+ }
+ if iter.readByte() != b2 {
+ iter.ReportError("skipFourBytes", fmt.Sprintf("expect %s", string([]byte{b1, b2, b3, b4})))
+ return
+ }
+ if iter.readByte() != b3 {
+ iter.ReportError("skipFourBytes", fmt.Sprintf("expect %s", string([]byte{b1, b2, b3, b4})))
+ return
+ }
+ if iter.readByte() != b4 {
+ iter.ReportError("skipFourBytes", fmt.Sprintf("expect %s", string([]byte{b1, b2, b3, b4})))
+ return
+ }
+}
+
+func (iter *Iterator) skipThreeBytes(b1, b2, b3 byte) {
+ if iter.readByte() != b1 {
+ iter.ReportError("skipThreeBytes", fmt.Sprintf("expect %s", string([]byte{b1, b2, b3})))
+ return
+ }
+ if iter.readByte() != b2 {
+ iter.ReportError("skipThreeBytes", fmt.Sprintf("expect %s", string([]byte{b1, b2, b3})))
+ return
+ }
+ if iter.readByte() != b3 {
+ iter.ReportError("skipThreeBytes", fmt.Sprintf("expect %s", string([]byte{b1, b2, b3})))
+ return
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/iter_skip_sloppy.go b/vendor/github.com/json-iterator/go/iter_skip_sloppy.go
new file mode 100644
index 000000000..8fcdc3b69
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_skip_sloppy.go
@@ -0,0 +1,144 @@
+//+build jsoniter_sloppy
+
+package jsoniter
+
+// sloppy but faster implementation, do not validate the input json
+
+func (iter *Iterator) skipNumber() {
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ switch c {
+ case ' ', '\n', '\r', '\t', ',', '}', ']':
+ iter.head = i
+ return
+ }
+ }
+ if !iter.loadMore() {
+ return
+ }
+ }
+}
+
+func (iter *Iterator) skipArray() {
+ level := 1
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ switch iter.buf[i] {
+ case '"': // If inside string, skip it
+ iter.head = i + 1
+ iter.skipString()
+ i = iter.head - 1 // it will be i++ soon
+ case '[': // If open symbol, increase level
+ level++
+ case ']': // If close symbol, increase level
+ level--
+
+ // If we have returned to the original level, we're done
+ if level == 0 {
+ iter.head = i + 1
+ return
+ }
+ }
+ }
+ if !iter.loadMore() {
+ iter.ReportError("skipObject", "incomplete array")
+ return
+ }
+ }
+}
+
+func (iter *Iterator) skipObject() {
+ level := 1
+ for {
+ for i := iter.head; i < iter.tail; i++ {
+ switch iter.buf[i] {
+ case '"': // If inside string, skip it
+ iter.head = i + 1
+ iter.skipString()
+ i = iter.head - 1 // it will be i++ soon
+ case '{': // If open symbol, increase level
+ level++
+ case '}': // If close symbol, increase level
+ level--
+
+ // If we have returned to the original level, we're done
+ if level == 0 {
+ iter.head = i + 1
+ return
+ }
+ }
+ }
+ if !iter.loadMore() {
+ iter.ReportError("skipObject", "incomplete object")
+ return
+ }
+ }
+}
+
+func (iter *Iterator) skipString() {
+ for {
+ end, escaped := iter.findStringEnd()
+ if end == -1 {
+ if !iter.loadMore() {
+ iter.ReportError("skipString", "incomplete string")
+ return
+ }
+ if escaped {
+ iter.head = 1 // skip the first char as last char read is \
+ }
+ } else {
+ iter.head = end
+ return
+ }
+ }
+}
+
+// adapted from: https://github.com/buger/jsonparser/blob/master/parser.go
+// Tries to find the end of string
+// Support if string contains escaped quote symbols.
+func (iter *Iterator) findStringEnd() (int, bool) {
+ escaped := false
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ if c == '"' {
+ if !escaped {
+ return i + 1, false
+ }
+ j := i - 1
+ for {
+ if j < iter.head || iter.buf[j] != '\\' {
+ // even number of backslashes
+ // either end of buffer, or " found
+ return i + 1, true
+ }
+ j--
+ if j < iter.head || iter.buf[j] != '\\' {
+ // odd number of backslashes
+ // it is \" or \\\"
+ break
+ }
+ j--
+ }
+ } else if c == '\\' {
+ escaped = true
+ }
+ }
+ j := iter.tail - 1
+ for {
+ if j < iter.head || iter.buf[j] != '\\' {
+ // even number of backslashes
+ // either end of buffer, or " found
+ return -1, false // do not end with \
+ }
+ j--
+ if j < iter.head || iter.buf[j] != '\\' {
+ // odd number of backslashes
+ // it is \" or \\\"
+ break
+ }
+ j--
+
+ }
+ return -1, true // end with \
+}
diff --git a/vendor/github.com/json-iterator/go/iter_skip_strict.go b/vendor/github.com/json-iterator/go/iter_skip_strict.go
new file mode 100644
index 000000000..f67bc2e83
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_skip_strict.go
@@ -0,0 +1,89 @@
+//+build !jsoniter_sloppy
+
+package jsoniter
+
+import "fmt"
+
+func (iter *Iterator) skipNumber() {
+ if !iter.trySkipNumber() {
+ iter.unreadByte()
+ iter.ReadFloat32()
+ }
+}
+
+func (iter *Iterator) trySkipNumber() bool {
+ dotFound := false
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ switch c {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ case '.':
+ if dotFound {
+ iter.ReportError("validateNumber", `more than one dot found in number`)
+ return true // already failed
+ }
+ if i+1 == iter.tail {
+ return false
+ }
+ c = iter.buf[i+1]
+ switch c {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ default:
+ iter.ReportError("validateNumber", `missing digit after dot`)
+ return true // already failed
+ }
+ dotFound = true
+ default:
+ switch c {
+ case ',', ']', '}', ' ', '\t', '\n', '\r':
+ if iter.head == i {
+ return false // if - without following digits
+ }
+ iter.head = i
+ return true // must be valid
+ }
+ return false // may be invalid
+ }
+ }
+ return false
+}
+
+func (iter *Iterator) skipString() {
+ if !iter.trySkipString() {
+ iter.unreadByte()
+ iter.ReadString()
+ }
+}
+
+func (iter *Iterator) trySkipString() bool {
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ if c == '"' {
+ iter.head = i + 1
+ return true // valid
+ } else if c == '\\' {
+ return false
+ } else if c < ' ' {
+ iter.ReportError("trySkipString",
+ fmt.Sprintf(`invalid control character found: %d`, c))
+ return true // already failed
+ }
+ }
+ return false
+}
+
+func (iter *Iterator) skipObject() {
+ iter.unreadByte()
+ iter.ReadObjectCB(func(iter *Iterator, field string) bool {
+ iter.Skip()
+ return true
+ })
+}
+
+func (iter *Iterator) skipArray() {
+ iter.unreadByte()
+ iter.ReadArrayCB(func(iter *Iterator) bool {
+ iter.Skip()
+ return true
+ })
+}
diff --git a/vendor/github.com/json-iterator/go/iter_str.go b/vendor/github.com/json-iterator/go/iter_str.go
new file mode 100644
index 000000000..adc487ea8
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_str.go
@@ -0,0 +1,215 @@
+package jsoniter
+
+import (
+ "fmt"
+ "unicode/utf16"
+)
+
+// ReadString read string from iterator
+func (iter *Iterator) ReadString() (ret string) {
+ c := iter.nextToken()
+ if c == '"' {
+ for i := iter.head; i < iter.tail; i++ {
+ c := iter.buf[i]
+ if c == '"' {
+ ret = string(iter.buf[iter.head:i])
+ iter.head = i + 1
+ return ret
+ } else if c == '\\' {
+ break
+ } else if c < ' ' {
+ iter.ReportError("ReadString",
+ fmt.Sprintf(`invalid control character found: %d`, c))
+ return
+ }
+ }
+ return iter.readStringSlowPath()
+ } else if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ return ""
+ }
+ iter.ReportError("ReadString", `expects " or n, but found `+string([]byte{c}))
+ return
+}
+
+func (iter *Iterator) readStringSlowPath() (ret string) {
+ var str []byte
+ var c byte
+ for iter.Error == nil {
+ c = iter.readByte()
+ if c == '"' {
+ return string(str)
+ }
+ if c == '\\' {
+ c = iter.readByte()
+ str = iter.readEscapedChar(c, str)
+ } else {
+ str = append(str, c)
+ }
+ }
+ iter.ReportError("readStringSlowPath", "unexpected end of input")
+ return
+}
+
+func (iter *Iterator) readEscapedChar(c byte, str []byte) []byte {
+ switch c {
+ case 'u':
+ r := iter.readU4()
+ if utf16.IsSurrogate(r) {
+ c = iter.readByte()
+ if iter.Error != nil {
+ return nil
+ }
+ if c != '\\' {
+ iter.unreadByte()
+ str = appendRune(str, r)
+ return str
+ }
+ c = iter.readByte()
+ if iter.Error != nil {
+ return nil
+ }
+ if c != 'u' {
+ str = appendRune(str, r)
+ return iter.readEscapedChar(c, str)
+ }
+ r2 := iter.readU4()
+ if iter.Error != nil {
+ return nil
+ }
+ combined := utf16.DecodeRune(r, r2)
+ if combined == '\uFFFD' {
+ str = appendRune(str, r)
+ str = appendRune(str, r2)
+ } else {
+ str = appendRune(str, combined)
+ }
+ } else {
+ str = appendRune(str, r)
+ }
+ case '"':
+ str = append(str, '"')
+ case '\\':
+ str = append(str, '\\')
+ case '/':
+ str = append(str, '/')
+ case 'b':
+ str = append(str, '\b')
+ case 'f':
+ str = append(str, '\f')
+ case 'n':
+ str = append(str, '\n')
+ case 'r':
+ str = append(str, '\r')
+ case 't':
+ str = append(str, '\t')
+ default:
+ iter.ReportError("readEscapedChar",
+ `invalid escape char after \`)
+ return nil
+ }
+ return str
+}
+
+// ReadStringAsSlice read string from iterator without copying into string form.
+// The []byte can not be kept, as it will change after next iterator call.
+func (iter *Iterator) ReadStringAsSlice() (ret []byte) {
+ c := iter.nextToken()
+ if c == '"' {
+ for i := iter.head; i < iter.tail; i++ {
+ // require ascii string and no escape
+ // for: field name, base64, number
+ if iter.buf[i] == '"' {
+ // fast path: reuse the underlying buffer
+ ret = iter.buf[iter.head:i]
+ iter.head = i + 1
+ return ret
+ }
+ }
+ readLen := iter.tail - iter.head
+ copied := make([]byte, readLen, readLen*2)
+ copy(copied, iter.buf[iter.head:iter.tail])
+ iter.head = iter.tail
+ for iter.Error == nil {
+ c := iter.readByte()
+ if c == '"' {
+ return copied
+ }
+ copied = append(copied, c)
+ }
+ return copied
+ }
+ iter.ReportError("ReadStringAsSlice", `expects " or n, but found `+string([]byte{c}))
+ return
+}
+
+func (iter *Iterator) readU4() (ret rune) {
+ for i := 0; i < 4; i++ {
+ c := iter.readByte()
+ if iter.Error != nil {
+ return
+ }
+ if c >= '0' && c <= '9' {
+ ret = ret*16 + rune(c-'0')
+ } else if c >= 'a' && c <= 'f' {
+ ret = ret*16 + rune(c-'a'+10)
+ } else if c >= 'A' && c <= 'F' {
+ ret = ret*16 + rune(c-'A'+10)
+ } else {
+ iter.ReportError("readU4", "expects 0~9 or a~f, but found "+string([]byte{c}))
+ return
+ }
+ }
+ return ret
+}
+
+const (
+ t1 = 0x00 // 0000 0000
+ tx = 0x80 // 1000 0000
+ t2 = 0xC0 // 1100 0000
+ t3 = 0xE0 // 1110 0000
+ t4 = 0xF0 // 1111 0000
+ t5 = 0xF8 // 1111 1000
+
+ maskx = 0x3F // 0011 1111
+ mask2 = 0x1F // 0001 1111
+ mask3 = 0x0F // 0000 1111
+ mask4 = 0x07 // 0000 0111
+
+ rune1Max = 1<<7 - 1
+ rune2Max = 1<<11 - 1
+ rune3Max = 1<<16 - 1
+
+ surrogateMin = 0xD800
+ surrogateMax = 0xDFFF
+
+ maxRune = '\U0010FFFF' // Maximum valid Unicode code point.
+ runeError = '\uFFFD' // the "error" Rune or "Unicode replacement character"
+)
+
+func appendRune(p []byte, r rune) []byte {
+ // Negative values are erroneous. Making it unsigned addresses the problem.
+ switch i := uint32(r); {
+ case i <= rune1Max:
+ p = append(p, byte(r))
+ return p
+ case i <= rune2Max:
+ p = append(p, t2|byte(r>>6))
+ p = append(p, tx|byte(r)&maskx)
+ return p
+ case i > maxRune, surrogateMin <= i && i <= surrogateMax:
+ r = runeError
+ fallthrough
+ case i <= rune3Max:
+ p = append(p, t3|byte(r>>12))
+ p = append(p, tx|byte(r>>6)&maskx)
+ p = append(p, tx|byte(r)&maskx)
+ return p
+ default:
+ p = append(p, t4|byte(r>>18))
+ p = append(p, tx|byte(r>>12)&maskx)
+ p = append(p, tx|byte(r>>6)&maskx)
+ p = append(p, tx|byte(r)&maskx)
+ return p
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/jsoniter.go b/vendor/github.com/json-iterator/go/jsoniter.go
new file mode 100644
index 000000000..c2934f916
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/jsoniter.go
@@ -0,0 +1,18 @@
+// Package jsoniter implements encoding and decoding of JSON as defined in
+// RFC 4627 and provides interfaces with identical syntax of standard lib encoding/json.
+// Converting from encoding/json to jsoniter is no more than replacing the package with jsoniter
+// and variable type declarations (if any).
+// jsoniter interfaces gives 100% compatibility with code using standard lib.
+//
+// "JSON and Go"
+// (https://golang.org/doc/articles/json_and_go.html)
+// gives a description of how Marshal/Unmarshal operate
+// between arbitrary or predefined json objects and bytes,
+// and it applies to jsoniter.Marshal/Unmarshal as well.
+//
+// Besides, jsoniter.Iterator provides a different set of interfaces
+// iterating given bytes/string/reader
+// and yielding parsed elements one by one.
+// This set of interfaces reads input as required and gives
+// better performance.
+package jsoniter
diff --git a/vendor/github.com/json-iterator/go/pool.go b/vendor/github.com/json-iterator/go/pool.go
new file mode 100644
index 000000000..e2389b56c
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/pool.go
@@ -0,0 +1,42 @@
+package jsoniter
+
+import (
+ "io"
+)
+
+// IteratorPool a thread safe pool of iterators with same configuration
+type IteratorPool interface {
+ BorrowIterator(data []byte) *Iterator
+ ReturnIterator(iter *Iterator)
+}
+
+// StreamPool a thread safe pool of streams with same configuration
+type StreamPool interface {
+ BorrowStream(writer io.Writer) *Stream
+ ReturnStream(stream *Stream)
+}
+
+func (cfg *frozenConfig) BorrowStream(writer io.Writer) *Stream {
+ stream := cfg.streamPool.Get().(*Stream)
+ stream.Reset(writer)
+ return stream
+}
+
+func (cfg *frozenConfig) ReturnStream(stream *Stream) {
+ stream.out = nil
+ stream.Error = nil
+ stream.Attachment = nil
+ cfg.streamPool.Put(stream)
+}
+
+func (cfg *frozenConfig) BorrowIterator(data []byte) *Iterator {
+ iter := cfg.iteratorPool.Get().(*Iterator)
+ iter.ResetBytes(data)
+ return iter
+}
+
+func (cfg *frozenConfig) ReturnIterator(iter *Iterator) {
+ iter.Error = nil
+ iter.Attachment = nil
+ cfg.iteratorPool.Put(iter)
+}
diff --git a/vendor/github.com/json-iterator/go/reflect.go b/vendor/github.com/json-iterator/go/reflect.go
new file mode 100644
index 000000000..4459e203f
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect.go
@@ -0,0 +1,332 @@
+package jsoniter
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "github.com/modern-go/reflect2"
+)
+
+// ValDecoder is an internal type registered to cache as needed.
+// Don't confuse jsoniter.ValDecoder with json.Decoder.
+// For json.Decoder's adapter, refer to jsoniter.AdapterDecoder(todo link).
+//
+// Reflection on type to create decoders, which is then cached
+// Reflection on value is avoided as we can, as the reflect.Value itself will allocate, with following exceptions
+// 1. create instance of new value, for example *int will need a int to be allocated
+// 2. append to slice, if the existing cap is not enough, allocate will be done using Reflect.New
+// 3. assignment to map, both key and value will be reflect.Value
+// For a simple struct binding, it will be reflect.Value free and allocation free
+type ValDecoder interface {
+ Decode(ptr unsafe.Pointer, iter *Iterator)
+}
+
+// ValEncoder is an internal type registered to cache as needed.
+// Don't confuse jsoniter.ValEncoder with json.Encoder.
+// For json.Encoder's adapter, refer to jsoniter.AdapterEncoder(todo godoc link).
+type ValEncoder interface {
+ IsEmpty(ptr unsafe.Pointer) bool
+ Encode(ptr unsafe.Pointer, stream *Stream)
+}
+
+type checkIsEmpty interface {
+ IsEmpty(ptr unsafe.Pointer) bool
+}
+
+type ctx struct {
+ *frozenConfig
+ prefix string
+ encoders map[reflect2.Type]ValEncoder
+ decoders map[reflect2.Type]ValDecoder
+}
+
+func (b *ctx) caseSensitive() bool {
+ if b.frozenConfig == nil {
+ // default is case-insensitive
+ return false
+ }
+ return b.frozenConfig.caseSensitive
+}
+
+func (b *ctx) append(prefix string) *ctx {
+ return &ctx{
+ frozenConfig: b.frozenConfig,
+ prefix: b.prefix + " " + prefix,
+ encoders: b.encoders,
+ decoders: b.decoders,
+ }
+}
+
+// ReadVal copy the underlying JSON into go interface, same as json.Unmarshal
+func (iter *Iterator) ReadVal(obj interface{}) {
+ cacheKey := reflect2.RTypeOf(obj)
+ decoder := iter.cfg.getDecoderFromCache(cacheKey)
+ if decoder == nil {
+ typ := reflect2.TypeOf(obj)
+ if typ.Kind() != reflect.Ptr {
+ iter.ReportError("ReadVal", "can only unmarshal into pointer")
+ return
+ }
+ decoder = iter.cfg.DecoderOf(typ)
+ }
+ ptr := reflect2.PtrOf(obj)
+ if ptr == nil {
+ iter.ReportError("ReadVal", "can not read into nil pointer")
+ return
+ }
+ decoder.Decode(ptr, iter)
+}
+
+// WriteVal copy the go interface into underlying JSON, same as json.Marshal
+func (stream *Stream) WriteVal(val interface{}) {
+ if nil == val {
+ stream.WriteNil()
+ return
+ }
+ cacheKey := reflect2.RTypeOf(val)
+ encoder := stream.cfg.getEncoderFromCache(cacheKey)
+ if encoder == nil {
+ typ := reflect2.TypeOf(val)
+ encoder = stream.cfg.EncoderOf(typ)
+ }
+ encoder.Encode(reflect2.PtrOf(val), stream)
+}
+
+func (cfg *frozenConfig) DecoderOf(typ reflect2.Type) ValDecoder {
+ cacheKey := typ.RType()
+ decoder := cfg.getDecoderFromCache(cacheKey)
+ if decoder != nil {
+ return decoder
+ }
+ ctx := &ctx{
+ frozenConfig: cfg,
+ prefix: "",
+ decoders: map[reflect2.Type]ValDecoder{},
+ encoders: map[reflect2.Type]ValEncoder{},
+ }
+ ptrType := typ.(*reflect2.UnsafePtrType)
+ decoder = decoderOfType(ctx, ptrType.Elem())
+ cfg.addDecoderToCache(cacheKey, decoder)
+ return decoder
+}
+
+func decoderOfType(ctx *ctx, typ reflect2.Type) ValDecoder {
+ decoder := getTypeDecoderFromExtension(ctx, typ)
+ if decoder != nil {
+ return decoder
+ }
+ decoder = createDecoderOfType(ctx, typ)
+ for _, extension := range extensions {
+ decoder = extension.DecorateDecoder(typ, decoder)
+ }
+ decoder = ctx.decoderExtension.DecorateDecoder(typ, decoder)
+ for _, extension := range ctx.extraExtensions {
+ decoder = extension.DecorateDecoder(typ, decoder)
+ }
+ return decoder
+}
+
+func createDecoderOfType(ctx *ctx, typ reflect2.Type) ValDecoder {
+ decoder := ctx.decoders[typ]
+ if decoder != nil {
+ return decoder
+ }
+ placeholder := &placeholderDecoder{}
+ ctx.decoders[typ] = placeholder
+ decoder = _createDecoderOfType(ctx, typ)
+ placeholder.decoder = decoder
+ return decoder
+}
+
+func _createDecoderOfType(ctx *ctx, typ reflect2.Type) ValDecoder {
+ decoder := createDecoderOfJsonRawMessage(ctx, typ)
+ if decoder != nil {
+ return decoder
+ }
+ decoder = createDecoderOfJsonNumber(ctx, typ)
+ if decoder != nil {
+ return decoder
+ }
+ decoder = createDecoderOfMarshaler(ctx, typ)
+ if decoder != nil {
+ return decoder
+ }
+ decoder = createDecoderOfAny(ctx, typ)
+ if decoder != nil {
+ return decoder
+ }
+ decoder = createDecoderOfNative(ctx, typ)
+ if decoder != nil {
+ return decoder
+ }
+ switch typ.Kind() {
+ case reflect.Interface:
+ ifaceType, isIFace := typ.(*reflect2.UnsafeIFaceType)
+ if isIFace {
+ return &ifaceDecoder{valType: ifaceType}
+ }
+ return &efaceDecoder{}
+ case reflect.Struct:
+ return decoderOfStruct(ctx, typ)
+ case reflect.Array:
+ return decoderOfArray(ctx, typ)
+ case reflect.Slice:
+ return decoderOfSlice(ctx, typ)
+ case reflect.Map:
+ return decoderOfMap(ctx, typ)
+ case reflect.Ptr:
+ return decoderOfOptional(ctx, typ)
+ default:
+ return &lazyErrorDecoder{err: fmt.Errorf("%s%s is unsupported type", ctx.prefix, typ.String())}
+ }
+}
+
+func (cfg *frozenConfig) EncoderOf(typ reflect2.Type) ValEncoder {
+ cacheKey := typ.RType()
+ encoder := cfg.getEncoderFromCache(cacheKey)
+ if encoder != nil {
+ return encoder
+ }
+ ctx := &ctx{
+ frozenConfig: cfg,
+ prefix: "",
+ decoders: map[reflect2.Type]ValDecoder{},
+ encoders: map[reflect2.Type]ValEncoder{},
+ }
+ encoder = encoderOfType(ctx, typ)
+ if typ.LikePtr() {
+ encoder = &onePtrEncoder{encoder}
+ }
+ cfg.addEncoderToCache(cacheKey, encoder)
+ return encoder
+}
+
+type onePtrEncoder struct {
+ encoder ValEncoder
+}
+
+func (encoder *onePtrEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.encoder.IsEmpty(unsafe.Pointer(&ptr))
+}
+
+func (encoder *onePtrEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ encoder.encoder.Encode(unsafe.Pointer(&ptr), stream)
+}
+
+func encoderOfType(ctx *ctx, typ reflect2.Type) ValEncoder {
+ encoder := getTypeEncoderFromExtension(ctx, typ)
+ if encoder != nil {
+ return encoder
+ }
+ encoder = createEncoderOfType(ctx, typ)
+ for _, extension := range extensions {
+ encoder = extension.DecorateEncoder(typ, encoder)
+ }
+ encoder = ctx.encoderExtension.DecorateEncoder(typ, encoder)
+ for _, extension := range ctx.extraExtensions {
+ encoder = extension.DecorateEncoder(typ, encoder)
+ }
+ return encoder
+}
+
+func createEncoderOfType(ctx *ctx, typ reflect2.Type) ValEncoder {
+ encoder := ctx.encoders[typ]
+ if encoder != nil {
+ return encoder
+ }
+ placeholder := &placeholderEncoder{}
+ ctx.encoders[typ] = placeholder
+ encoder = _createEncoderOfType(ctx, typ)
+ placeholder.encoder = encoder
+ return encoder
+}
+func _createEncoderOfType(ctx *ctx, typ reflect2.Type) ValEncoder {
+ encoder := createEncoderOfJsonRawMessage(ctx, typ)
+ if encoder != nil {
+ return encoder
+ }
+ encoder = createEncoderOfJsonNumber(ctx, typ)
+ if encoder != nil {
+ return encoder
+ }
+ encoder = createEncoderOfMarshaler(ctx, typ)
+ if encoder != nil {
+ return encoder
+ }
+ encoder = createEncoderOfAny(ctx, typ)
+ if encoder != nil {
+ return encoder
+ }
+ encoder = createEncoderOfNative(ctx, typ)
+ if encoder != nil {
+ return encoder
+ }
+ kind := typ.Kind()
+ switch kind {
+ case reflect.Interface:
+ return &dynamicEncoder{typ}
+ case reflect.Struct:
+ return encoderOfStruct(ctx, typ)
+ case reflect.Array:
+ return encoderOfArray(ctx, typ)
+ case reflect.Slice:
+ return encoderOfSlice(ctx, typ)
+ case reflect.Map:
+ return encoderOfMap(ctx, typ)
+ case reflect.Ptr:
+ return encoderOfOptional(ctx, typ)
+ default:
+ return &lazyErrorEncoder{err: fmt.Errorf("%s%s is unsupported type", ctx.prefix, typ.String())}
+ }
+}
+
+type lazyErrorDecoder struct {
+ err error
+}
+
+func (decoder *lazyErrorDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if iter.WhatIsNext() != NilValue {
+ if iter.Error == nil {
+ iter.Error = decoder.err
+ }
+ } else {
+ iter.Skip()
+ }
+}
+
+type lazyErrorEncoder struct {
+ err error
+}
+
+func (encoder *lazyErrorEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ if ptr == nil {
+ stream.WriteNil()
+ } else if stream.Error == nil {
+ stream.Error = encoder.err
+ }
+}
+
+func (encoder *lazyErrorEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return false
+}
+
+type placeholderDecoder struct {
+ decoder ValDecoder
+}
+
+func (decoder *placeholderDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ decoder.decoder.Decode(ptr, iter)
+}
+
+type placeholderEncoder struct {
+ encoder ValEncoder
+}
+
+func (encoder *placeholderEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ encoder.encoder.Encode(ptr, stream)
+}
+
+func (encoder *placeholderEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.encoder.IsEmpty(ptr)
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_array.go b/vendor/github.com/json-iterator/go/reflect_array.go
new file mode 100644
index 000000000..13a0b7b08
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_array.go
@@ -0,0 +1,104 @@
+package jsoniter
+
+import (
+ "fmt"
+ "github.com/modern-go/reflect2"
+ "io"
+ "unsafe"
+)
+
+func decoderOfArray(ctx *ctx, typ reflect2.Type) ValDecoder {
+ arrayType := typ.(*reflect2.UnsafeArrayType)
+ decoder := decoderOfType(ctx.append("[arrayElem]"), arrayType.Elem())
+ return &arrayDecoder{arrayType, decoder}
+}
+
+func encoderOfArray(ctx *ctx, typ reflect2.Type) ValEncoder {
+ arrayType := typ.(*reflect2.UnsafeArrayType)
+ if arrayType.Len() == 0 {
+ return emptyArrayEncoder{}
+ }
+ encoder := encoderOfType(ctx.append("[arrayElem]"), arrayType.Elem())
+ return &arrayEncoder{arrayType, encoder}
+}
+
+type emptyArrayEncoder struct{}
+
+func (encoder emptyArrayEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteEmptyArray()
+}
+
+func (encoder emptyArrayEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return true
+}
+
+type arrayEncoder struct {
+ arrayType *reflect2.UnsafeArrayType
+ elemEncoder ValEncoder
+}
+
+func (encoder *arrayEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteArrayStart()
+ elemPtr := unsafe.Pointer(ptr)
+ encoder.elemEncoder.Encode(elemPtr, stream)
+ for i := 1; i < encoder.arrayType.Len(); i++ {
+ stream.WriteMore()
+ elemPtr = encoder.arrayType.UnsafeGetIndex(ptr, i)
+ encoder.elemEncoder.Encode(elemPtr, stream)
+ }
+ stream.WriteArrayEnd()
+ if stream.Error != nil && stream.Error != io.EOF {
+ stream.Error = fmt.Errorf("%v: %s", encoder.arrayType, stream.Error.Error())
+ }
+}
+
+func (encoder *arrayEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return false
+}
+
+type arrayDecoder struct {
+ arrayType *reflect2.UnsafeArrayType
+ elemDecoder ValDecoder
+}
+
+func (decoder *arrayDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ decoder.doDecode(ptr, iter)
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v: %s", decoder.arrayType, iter.Error.Error())
+ }
+}
+
+func (decoder *arrayDecoder) doDecode(ptr unsafe.Pointer, iter *Iterator) {
+ c := iter.nextToken()
+ arrayType := decoder.arrayType
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ return
+ }
+ if c != '[' {
+ iter.ReportError("decode array", "expect [ or n, but found "+string([]byte{c}))
+ return
+ }
+ c = iter.nextToken()
+ if c == ']' {
+ return
+ }
+ iter.unreadByte()
+ elemPtr := arrayType.UnsafeGetIndex(ptr, 0)
+ decoder.elemDecoder.Decode(elemPtr, iter)
+ length := 1
+ for c = iter.nextToken(); c == ','; c = iter.nextToken() {
+ if length >= arrayType.Len() {
+ iter.Skip()
+ continue
+ }
+ idx := length
+ length += 1
+ elemPtr = arrayType.UnsafeGetIndex(ptr, idx)
+ decoder.elemDecoder.Decode(elemPtr, iter)
+ }
+ if c != ']' {
+ iter.ReportError("decode array", "expect ], but found "+string([]byte{c}))
+ return
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_dynamic.go b/vendor/github.com/json-iterator/go/reflect_dynamic.go
new file mode 100644
index 000000000..8b6bc8b43
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_dynamic.go
@@ -0,0 +1,70 @@
+package jsoniter
+
+import (
+ "github.com/modern-go/reflect2"
+ "reflect"
+ "unsafe"
+)
+
+type dynamicEncoder struct {
+ valType reflect2.Type
+}
+
+func (encoder *dynamicEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ obj := encoder.valType.UnsafeIndirect(ptr)
+ stream.WriteVal(obj)
+}
+
+func (encoder *dynamicEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.valType.UnsafeIndirect(ptr) == nil
+}
+
+type efaceDecoder struct {
+}
+
+func (decoder *efaceDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ pObj := (*interface{})(ptr)
+ obj := *pObj
+ if obj == nil {
+ *pObj = iter.Read()
+ return
+ }
+ typ := reflect2.TypeOf(obj)
+ if typ.Kind() != reflect.Ptr {
+ *pObj = iter.Read()
+ return
+ }
+ ptrType := typ.(*reflect2.UnsafePtrType)
+ ptrElemType := ptrType.Elem()
+ if iter.WhatIsNext() == NilValue {
+ if ptrElemType.Kind() != reflect.Ptr {
+ iter.skipFourBytes('n', 'u', 'l', 'l')
+ *pObj = nil
+ return
+ }
+ }
+ if reflect2.IsNil(obj) {
+ obj := ptrElemType.New()
+ iter.ReadVal(obj)
+ *pObj = obj
+ return
+ }
+ iter.ReadVal(obj)
+}
+
+type ifaceDecoder struct {
+ valType *reflect2.UnsafeIFaceType
+}
+
+func (decoder *ifaceDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if iter.ReadNil() {
+ decoder.valType.UnsafeSet(ptr, decoder.valType.UnsafeNew())
+ return
+ }
+ obj := decoder.valType.UnsafeIndirect(ptr)
+ if reflect2.IsNil(obj) {
+ iter.ReportError("decode non empty interface", "can not unmarshal into nil")
+ return
+ }
+ iter.ReadVal(obj)
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_extension.go b/vendor/github.com/json-iterator/go/reflect_extension.go
new file mode 100644
index 000000000..04f68756b
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_extension.go
@@ -0,0 +1,483 @@
+package jsoniter
+
+import (
+ "fmt"
+ "github.com/modern-go/reflect2"
+ "reflect"
+ "sort"
+ "strings"
+ "unicode"
+ "unsafe"
+)
+
+var typeDecoders = map[string]ValDecoder{}
+var fieldDecoders = map[string]ValDecoder{}
+var typeEncoders = map[string]ValEncoder{}
+var fieldEncoders = map[string]ValEncoder{}
+var extensions = []Extension{}
+
+// StructDescriptor describe how should we encode/decode the struct
+type StructDescriptor struct {
+ Type reflect2.Type
+ Fields []*Binding
+}
+
+// GetField get one field from the descriptor by its name.
+// Can not use map here to keep field orders.
+func (structDescriptor *StructDescriptor) GetField(fieldName string) *Binding {
+ for _, binding := range structDescriptor.Fields {
+ if binding.Field.Name() == fieldName {
+ return binding
+ }
+ }
+ return nil
+}
+
+// Binding describe how should we encode/decode the struct field
+type Binding struct {
+ levels []int
+ Field reflect2.StructField
+ FromNames []string
+ ToNames []string
+ Encoder ValEncoder
+ Decoder ValDecoder
+}
+
+// Extension the one for all SPI. Customize encoding/decoding by specifying alternate encoder/decoder.
+// Can also rename fields by UpdateStructDescriptor.
+type Extension interface {
+ UpdateStructDescriptor(structDescriptor *StructDescriptor)
+ CreateMapKeyDecoder(typ reflect2.Type) ValDecoder
+ CreateMapKeyEncoder(typ reflect2.Type) ValEncoder
+ CreateDecoder(typ reflect2.Type) ValDecoder
+ CreateEncoder(typ reflect2.Type) ValEncoder
+ DecorateDecoder(typ reflect2.Type, decoder ValDecoder) ValDecoder
+ DecorateEncoder(typ reflect2.Type, encoder ValEncoder) ValEncoder
+}
+
+// DummyExtension embed this type get dummy implementation for all methods of Extension
+type DummyExtension struct {
+}
+
+// UpdateStructDescriptor No-op
+func (extension *DummyExtension) UpdateStructDescriptor(structDescriptor *StructDescriptor) {
+}
+
+// CreateMapKeyDecoder No-op
+func (extension *DummyExtension) CreateMapKeyDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateMapKeyEncoder No-op
+func (extension *DummyExtension) CreateMapKeyEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
+// CreateDecoder No-op
+func (extension *DummyExtension) CreateDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateEncoder No-op
+func (extension *DummyExtension) CreateEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
+// DecorateDecoder No-op
+func (extension *DummyExtension) DecorateDecoder(typ reflect2.Type, decoder ValDecoder) ValDecoder {
+ return decoder
+}
+
+// DecorateEncoder No-op
+func (extension *DummyExtension) DecorateEncoder(typ reflect2.Type, encoder ValEncoder) ValEncoder {
+ return encoder
+}
+
+type EncoderExtension map[reflect2.Type]ValEncoder
+
+// UpdateStructDescriptor No-op
+func (extension EncoderExtension) UpdateStructDescriptor(structDescriptor *StructDescriptor) {
+}
+
+// CreateDecoder No-op
+func (extension EncoderExtension) CreateDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateEncoder get encoder from map
+func (extension EncoderExtension) CreateEncoder(typ reflect2.Type) ValEncoder {
+ return extension[typ]
+}
+
+// CreateMapKeyDecoder No-op
+func (extension EncoderExtension) CreateMapKeyDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateMapKeyEncoder No-op
+func (extension EncoderExtension) CreateMapKeyEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
+// DecorateDecoder No-op
+func (extension EncoderExtension) DecorateDecoder(typ reflect2.Type, decoder ValDecoder) ValDecoder {
+ return decoder
+}
+
+// DecorateEncoder No-op
+func (extension EncoderExtension) DecorateEncoder(typ reflect2.Type, encoder ValEncoder) ValEncoder {
+ return encoder
+}
+
+type DecoderExtension map[reflect2.Type]ValDecoder
+
+// UpdateStructDescriptor No-op
+func (extension DecoderExtension) UpdateStructDescriptor(structDescriptor *StructDescriptor) {
+}
+
+// CreateMapKeyDecoder No-op
+func (extension DecoderExtension) CreateMapKeyDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateMapKeyEncoder No-op
+func (extension DecoderExtension) CreateMapKeyEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
+// CreateDecoder get decoder from map
+func (extension DecoderExtension) CreateDecoder(typ reflect2.Type) ValDecoder {
+ return extension[typ]
+}
+
+// CreateEncoder No-op
+func (extension DecoderExtension) CreateEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
+// DecorateDecoder No-op
+func (extension DecoderExtension) DecorateDecoder(typ reflect2.Type, decoder ValDecoder) ValDecoder {
+ return decoder
+}
+
+// DecorateEncoder No-op
+func (extension DecoderExtension) DecorateEncoder(typ reflect2.Type, encoder ValEncoder) ValEncoder {
+ return encoder
+}
+
+type funcDecoder struct {
+ fun DecoderFunc
+}
+
+func (decoder *funcDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ decoder.fun(ptr, iter)
+}
+
+type funcEncoder struct {
+ fun EncoderFunc
+ isEmptyFunc func(ptr unsafe.Pointer) bool
+}
+
+func (encoder *funcEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ encoder.fun(ptr, stream)
+}
+
+func (encoder *funcEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ if encoder.isEmptyFunc == nil {
+ return false
+ }
+ return encoder.isEmptyFunc(ptr)
+}
+
+// DecoderFunc the function form of TypeDecoder
+type DecoderFunc func(ptr unsafe.Pointer, iter *Iterator)
+
+// EncoderFunc the function form of TypeEncoder
+type EncoderFunc func(ptr unsafe.Pointer, stream *Stream)
+
+// RegisterTypeDecoderFunc register TypeDecoder for a type with function
+func RegisterTypeDecoderFunc(typ string, fun DecoderFunc) {
+ typeDecoders[typ] = &funcDecoder{fun}
+}
+
+// RegisterTypeDecoder register TypeDecoder for a typ
+func RegisterTypeDecoder(typ string, decoder ValDecoder) {
+ typeDecoders[typ] = decoder
+}
+
+// RegisterFieldDecoderFunc register TypeDecoder for a struct field with function
+func RegisterFieldDecoderFunc(typ string, field string, fun DecoderFunc) {
+ RegisterFieldDecoder(typ, field, &funcDecoder{fun})
+}
+
+// RegisterFieldDecoder register TypeDecoder for a struct field
+func RegisterFieldDecoder(typ string, field string, decoder ValDecoder) {
+ fieldDecoders[fmt.Sprintf("%s/%s", typ, field)] = decoder
+}
+
+// RegisterTypeEncoderFunc register TypeEncoder for a type with encode/isEmpty function
+func RegisterTypeEncoderFunc(typ string, fun EncoderFunc, isEmptyFunc func(unsafe.Pointer) bool) {
+ typeEncoders[typ] = &funcEncoder{fun, isEmptyFunc}
+}
+
+// RegisterTypeEncoder register TypeEncoder for a type
+func RegisterTypeEncoder(typ string, encoder ValEncoder) {
+ typeEncoders[typ] = encoder
+}
+
+// RegisterFieldEncoderFunc register TypeEncoder for a struct field with encode/isEmpty function
+func RegisterFieldEncoderFunc(typ string, field string, fun EncoderFunc, isEmptyFunc func(unsafe.Pointer) bool) {
+ RegisterFieldEncoder(typ, field, &funcEncoder{fun, isEmptyFunc})
+}
+
+// RegisterFieldEncoder register TypeEncoder for a struct field
+func RegisterFieldEncoder(typ string, field string, encoder ValEncoder) {
+ fieldEncoders[fmt.Sprintf("%s/%s", typ, field)] = encoder
+}
+
+// RegisterExtension register extension
+func RegisterExtension(extension Extension) {
+ extensions = append(extensions, extension)
+}
+
+func getTypeDecoderFromExtension(ctx *ctx, typ reflect2.Type) ValDecoder {
+ decoder := _getTypeDecoderFromExtension(ctx, typ)
+ if decoder != nil {
+ for _, extension := range extensions {
+ decoder = extension.DecorateDecoder(typ, decoder)
+ }
+ decoder = ctx.decoderExtension.DecorateDecoder(typ, decoder)
+ for _, extension := range ctx.extraExtensions {
+ decoder = extension.DecorateDecoder(typ, decoder)
+ }
+ }
+ return decoder
+}
+func _getTypeDecoderFromExtension(ctx *ctx, typ reflect2.Type) ValDecoder {
+ for _, extension := range extensions {
+ decoder := extension.CreateDecoder(typ)
+ if decoder != nil {
+ return decoder
+ }
+ }
+ decoder := ctx.decoderExtension.CreateDecoder(typ)
+ if decoder != nil {
+ return decoder
+ }
+ for _, extension := range ctx.extraExtensions {
+ decoder := extension.CreateDecoder(typ)
+ if decoder != nil {
+ return decoder
+ }
+ }
+ typeName := typ.String()
+ decoder = typeDecoders[typeName]
+ if decoder != nil {
+ return decoder
+ }
+ if typ.Kind() == reflect.Ptr {
+ ptrType := typ.(*reflect2.UnsafePtrType)
+ decoder := typeDecoders[ptrType.Elem().String()]
+ if decoder != nil {
+ return &OptionalDecoder{ptrType.Elem(), decoder}
+ }
+ }
+ return nil
+}
+
+func getTypeEncoderFromExtension(ctx *ctx, typ reflect2.Type) ValEncoder {
+ encoder := _getTypeEncoderFromExtension(ctx, typ)
+ if encoder != nil {
+ for _, extension := range extensions {
+ encoder = extension.DecorateEncoder(typ, encoder)
+ }
+ encoder = ctx.encoderExtension.DecorateEncoder(typ, encoder)
+ for _, extension := range ctx.extraExtensions {
+ encoder = extension.DecorateEncoder(typ, encoder)
+ }
+ }
+ return encoder
+}
+
+func _getTypeEncoderFromExtension(ctx *ctx, typ reflect2.Type) ValEncoder {
+ for _, extension := range extensions {
+ encoder := extension.CreateEncoder(typ)
+ if encoder != nil {
+ return encoder
+ }
+ }
+ encoder := ctx.encoderExtension.CreateEncoder(typ)
+ if encoder != nil {
+ return encoder
+ }
+ for _, extension := range ctx.extraExtensions {
+ encoder := extension.CreateEncoder(typ)
+ if encoder != nil {
+ return encoder
+ }
+ }
+ typeName := typ.String()
+ encoder = typeEncoders[typeName]
+ if encoder != nil {
+ return encoder
+ }
+ if typ.Kind() == reflect.Ptr {
+ typePtr := typ.(*reflect2.UnsafePtrType)
+ encoder := typeEncoders[typePtr.Elem().String()]
+ if encoder != nil {
+ return &OptionalEncoder{encoder}
+ }
+ }
+ return nil
+}
+
+func describeStruct(ctx *ctx, typ reflect2.Type) *StructDescriptor {
+ structType := typ.(*reflect2.UnsafeStructType)
+ embeddedBindings := []*Binding{}
+ bindings := []*Binding{}
+ for i := 0; i < structType.NumField(); i++ {
+ field := structType.Field(i)
+ tag, hastag := field.Tag().Lookup(ctx.getTagKey())
+ if ctx.onlyTaggedField && !hastag {
+ continue
+ }
+ tagParts := strings.Split(tag, ",")
+ if tag == "-" {
+ continue
+ }
+ if field.Anonymous() && (tag == "" || tagParts[0] == "") {
+ if field.Type().Kind() == reflect.Struct {
+ structDescriptor := describeStruct(ctx, field.Type())
+ for _, binding := range structDescriptor.Fields {
+ binding.levels = append([]int{i}, binding.levels...)
+ omitempty := binding.Encoder.(*structFieldEncoder).omitempty
+ binding.Encoder = &structFieldEncoder{field, binding.Encoder, omitempty}
+ binding.Decoder = &structFieldDecoder{field, binding.Decoder}
+ embeddedBindings = append(embeddedBindings, binding)
+ }
+ continue
+ } else if field.Type().Kind() == reflect.Ptr {
+ ptrType := field.Type().(*reflect2.UnsafePtrType)
+ if ptrType.Elem().Kind() == reflect.Struct {
+ structDescriptor := describeStruct(ctx, ptrType.Elem())
+ for _, binding := range structDescriptor.Fields {
+ binding.levels = append([]int{i}, binding.levels...)
+ omitempty := binding.Encoder.(*structFieldEncoder).omitempty
+ binding.Encoder = &dereferenceEncoder{binding.Encoder}
+ binding.Encoder = &structFieldEncoder{field, binding.Encoder, omitempty}
+ binding.Decoder = &dereferenceDecoder{ptrType.Elem(), binding.Decoder}
+ binding.Decoder = &structFieldDecoder{field, binding.Decoder}
+ embeddedBindings = append(embeddedBindings, binding)
+ }
+ continue
+ }
+ }
+ }
+ fieldNames := calcFieldNames(field.Name(), tagParts[0], tag)
+ fieldCacheKey := fmt.Sprintf("%s/%s", typ.String(), field.Name())
+ decoder := fieldDecoders[fieldCacheKey]
+ if decoder == nil {
+ decoder = decoderOfType(ctx.append(field.Name()), field.Type())
+ }
+ encoder := fieldEncoders[fieldCacheKey]
+ if encoder == nil {
+ encoder = encoderOfType(ctx.append(field.Name()), field.Type())
+ }
+ binding := &Binding{
+ Field: field,
+ FromNames: fieldNames,
+ ToNames: fieldNames,
+ Decoder: decoder,
+ Encoder: encoder,
+ }
+ binding.levels = []int{i}
+ bindings = append(bindings, binding)
+ }
+ return createStructDescriptor(ctx, typ, bindings, embeddedBindings)
+}
+func createStructDescriptor(ctx *ctx, typ reflect2.Type, bindings []*Binding, embeddedBindings []*Binding) *StructDescriptor {
+ structDescriptor := &StructDescriptor{
+ Type: typ,
+ Fields: bindings,
+ }
+ for _, extension := range extensions {
+ extension.UpdateStructDescriptor(structDescriptor)
+ }
+ ctx.encoderExtension.UpdateStructDescriptor(structDescriptor)
+ ctx.decoderExtension.UpdateStructDescriptor(structDescriptor)
+ for _, extension := range ctx.extraExtensions {
+ extension.UpdateStructDescriptor(structDescriptor)
+ }
+ processTags(structDescriptor, ctx.frozenConfig)
+ // merge normal & embedded bindings & sort with original order
+ allBindings := sortableBindings(append(embeddedBindings, structDescriptor.Fields...))
+ sort.Sort(allBindings)
+ structDescriptor.Fields = allBindings
+ return structDescriptor
+}
+
+type sortableBindings []*Binding
+
+func (bindings sortableBindings) Len() int {
+ return len(bindings)
+}
+
+func (bindings sortableBindings) Less(i, j int) bool {
+ left := bindings[i].levels
+ right := bindings[j].levels
+ k := 0
+ for {
+ if left[k] < right[k] {
+ return true
+ } else if left[k] > right[k] {
+ return false
+ }
+ k++
+ }
+}
+
+func (bindings sortableBindings) Swap(i, j int) {
+ bindings[i], bindings[j] = bindings[j], bindings[i]
+}
+
+func processTags(structDescriptor *StructDescriptor, cfg *frozenConfig) {
+ for _, binding := range structDescriptor.Fields {
+ shouldOmitEmpty := false
+ tagParts := strings.Split(binding.Field.Tag().Get(cfg.getTagKey()), ",")
+ for _, tagPart := range tagParts[1:] {
+ if tagPart == "omitempty" {
+ shouldOmitEmpty = true
+ } else if tagPart == "string" {
+ if binding.Field.Type().Kind() == reflect.String {
+ binding.Decoder = &stringModeStringDecoder{binding.Decoder, cfg}
+ binding.Encoder = &stringModeStringEncoder{binding.Encoder, cfg}
+ } else {
+ binding.Decoder = &stringModeNumberDecoder{binding.Decoder}
+ binding.Encoder = &stringModeNumberEncoder{binding.Encoder}
+ }
+ }
+ }
+ binding.Decoder = &structFieldDecoder{binding.Field, binding.Decoder}
+ binding.Encoder = &structFieldEncoder{binding.Field, binding.Encoder, shouldOmitEmpty}
+ }
+}
+
+func calcFieldNames(originalFieldName string, tagProvidedFieldName string, wholeTag string) []string {
+ // ignore?
+ if wholeTag == "-" {
+ return []string{}
+ }
+ // rename?
+ var fieldNames []string
+ if tagProvidedFieldName == "" {
+ fieldNames = []string{originalFieldName}
+ } else {
+ fieldNames = []string{tagProvidedFieldName}
+ }
+ // private?
+ isNotExported := unicode.IsLower(rune(originalFieldName[0]))
+ if isNotExported {
+ fieldNames = []string{}
+ }
+ return fieldNames
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_json_number.go b/vendor/github.com/json-iterator/go/reflect_json_number.go
new file mode 100644
index 000000000..98d45c1ec
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_json_number.go
@@ -0,0 +1,112 @@
+package jsoniter
+
+import (
+ "encoding/json"
+ "github.com/modern-go/reflect2"
+ "strconv"
+ "unsafe"
+)
+
+type Number string
+
+// String returns the literal text of the number.
+func (n Number) String() string { return string(n) }
+
+// Float64 returns the number as a float64.
+func (n Number) Float64() (float64, error) {
+ return strconv.ParseFloat(string(n), 64)
+}
+
+// Int64 returns the number as an int64.
+func (n Number) Int64() (int64, error) {
+ return strconv.ParseInt(string(n), 10, 64)
+}
+
+func CastJsonNumber(val interface{}) (string, bool) {
+ switch typedVal := val.(type) {
+ case json.Number:
+ return string(typedVal), true
+ case Number:
+ return string(typedVal), true
+ }
+ return "", false
+}
+
+var jsonNumberType = reflect2.TypeOfPtr((*json.Number)(nil)).Elem()
+var jsoniterNumberType = reflect2.TypeOfPtr((*Number)(nil)).Elem()
+
+func createDecoderOfJsonNumber(ctx *ctx, typ reflect2.Type) ValDecoder {
+ if typ.AssignableTo(jsonNumberType) {
+ return &jsonNumberCodec{}
+ }
+ if typ.AssignableTo(jsoniterNumberType) {
+ return &jsoniterNumberCodec{}
+ }
+ return nil
+}
+
+func createEncoderOfJsonNumber(ctx *ctx, typ reflect2.Type) ValEncoder {
+ if typ.AssignableTo(jsonNumberType) {
+ return &jsonNumberCodec{}
+ }
+ if typ.AssignableTo(jsoniterNumberType) {
+ return &jsoniterNumberCodec{}
+ }
+ return nil
+}
+
+type jsonNumberCodec struct {
+}
+
+func (codec *jsonNumberCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ switch iter.WhatIsNext() {
+ case StringValue:
+ *((*json.Number)(ptr)) = json.Number(iter.ReadString())
+ case NilValue:
+ iter.skipFourBytes('n', 'u', 'l', 'l')
+ *((*json.Number)(ptr)) = ""
+ default:
+ *((*json.Number)(ptr)) = json.Number([]byte(iter.readNumberAsString()))
+ }
+}
+
+func (codec *jsonNumberCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ number := *((*json.Number)(ptr))
+ if len(number) == 0 {
+ stream.writeByte('0')
+ } else {
+ stream.WriteRaw(string(number))
+ }
+}
+
+func (codec *jsonNumberCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ return len(*((*json.Number)(ptr))) == 0
+}
+
+type jsoniterNumberCodec struct {
+}
+
+func (codec *jsoniterNumberCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ switch iter.WhatIsNext() {
+ case StringValue:
+ *((*Number)(ptr)) = Number(iter.ReadString())
+ case NilValue:
+ iter.skipFourBytes('n', 'u', 'l', 'l')
+ *((*Number)(ptr)) = ""
+ default:
+ *((*Number)(ptr)) = Number([]byte(iter.readNumberAsString()))
+ }
+}
+
+func (codec *jsoniterNumberCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ number := *((*Number)(ptr))
+ if len(number) == 0 {
+ stream.writeByte('0')
+ } else {
+ stream.WriteRaw(string(number))
+ }
+}
+
+func (codec *jsoniterNumberCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ return len(*((*Number)(ptr))) == 0
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_json_raw_message.go b/vendor/github.com/json-iterator/go/reflect_json_raw_message.go
new file mode 100644
index 000000000..f2619936c
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_json_raw_message.go
@@ -0,0 +1,60 @@
+package jsoniter
+
+import (
+ "encoding/json"
+ "github.com/modern-go/reflect2"
+ "unsafe"
+)
+
+var jsonRawMessageType = reflect2.TypeOfPtr((*json.RawMessage)(nil)).Elem()
+var jsoniterRawMessageType = reflect2.TypeOfPtr((*RawMessage)(nil)).Elem()
+
+func createEncoderOfJsonRawMessage(ctx *ctx, typ reflect2.Type) ValEncoder {
+ if typ == jsonRawMessageType {
+ return &jsonRawMessageCodec{}
+ }
+ if typ == jsoniterRawMessageType {
+ return &jsoniterRawMessageCodec{}
+ }
+ return nil
+}
+
+func createDecoderOfJsonRawMessage(ctx *ctx, typ reflect2.Type) ValDecoder {
+ if typ == jsonRawMessageType {
+ return &jsonRawMessageCodec{}
+ }
+ if typ == jsoniterRawMessageType {
+ return &jsoniterRawMessageCodec{}
+ }
+ return nil
+}
+
+type jsonRawMessageCodec struct {
+}
+
+func (codec *jsonRawMessageCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ *((*json.RawMessage)(ptr)) = json.RawMessage(iter.SkipAndReturnBytes())
+}
+
+func (codec *jsonRawMessageCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteRaw(string(*((*json.RawMessage)(ptr))))
+}
+
+func (codec *jsonRawMessageCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ return len(*((*json.RawMessage)(ptr))) == 0
+}
+
+type jsoniterRawMessageCodec struct {
+}
+
+func (codec *jsoniterRawMessageCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ *((*RawMessage)(ptr)) = RawMessage(iter.SkipAndReturnBytes())
+}
+
+func (codec *jsoniterRawMessageCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteRaw(string(*((*RawMessage)(ptr))))
+}
+
+func (codec *jsoniterRawMessageCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ return len(*((*RawMessage)(ptr))) == 0
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_map.go b/vendor/github.com/json-iterator/go/reflect_map.go
new file mode 100644
index 000000000..7f66a88b0
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_map.go
@@ -0,0 +1,326 @@
+package jsoniter
+
+import (
+ "fmt"
+ "github.com/modern-go/reflect2"
+ "io"
+ "reflect"
+ "sort"
+ "unsafe"
+)
+
+func decoderOfMap(ctx *ctx, typ reflect2.Type) ValDecoder {
+ mapType := typ.(*reflect2.UnsafeMapType)
+ keyDecoder := decoderOfMapKey(ctx.append("[mapKey]"), mapType.Key())
+ elemDecoder := decoderOfType(ctx.append("[mapElem]"), mapType.Elem())
+ return &mapDecoder{
+ mapType: mapType,
+ keyType: mapType.Key(),
+ elemType: mapType.Elem(),
+ keyDecoder: keyDecoder,
+ elemDecoder: elemDecoder,
+ }
+}
+
+func encoderOfMap(ctx *ctx, typ reflect2.Type) ValEncoder {
+ mapType := typ.(*reflect2.UnsafeMapType)
+ if ctx.sortMapKeys {
+ return &sortKeysMapEncoder{
+ mapType: mapType,
+ keyEncoder: encoderOfMapKey(ctx.append("[mapKey]"), mapType.Key()),
+ elemEncoder: encoderOfType(ctx.append("[mapElem]"), mapType.Elem()),
+ }
+ }
+ return &mapEncoder{
+ mapType: mapType,
+ keyEncoder: encoderOfMapKey(ctx.append("[mapKey]"), mapType.Key()),
+ elemEncoder: encoderOfType(ctx.append("[mapElem]"), mapType.Elem()),
+ }
+}
+
+func decoderOfMapKey(ctx *ctx, typ reflect2.Type) ValDecoder {
+ decoder := ctx.decoderExtension.CreateMapKeyDecoder(typ)
+ if decoder != nil {
+ return decoder
+ }
+ for _, extension := range ctx.extraExtensions {
+ decoder := extension.CreateMapKeyDecoder(typ)
+ if decoder != nil {
+ return decoder
+ }
+ }
+ switch typ.Kind() {
+ case reflect.String:
+ return decoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
+ case reflect.Bool,
+ reflect.Uint8, reflect.Int8,
+ reflect.Uint16, reflect.Int16,
+ reflect.Uint32, reflect.Int32,
+ reflect.Uint64, reflect.Int64,
+ reflect.Uint, reflect.Int,
+ reflect.Float32, reflect.Float64,
+ reflect.Uintptr:
+ typ = reflect2.DefaultTypeOfKind(typ.Kind())
+ return &numericMapKeyDecoder{decoderOfType(ctx, typ)}
+ default:
+ ptrType := reflect2.PtrTo(typ)
+ if ptrType.Implements(textMarshalerType) {
+ return &referenceDecoder{
+ &textUnmarshalerDecoder{
+ valType: ptrType,
+ },
+ }
+ }
+ if typ.Implements(textMarshalerType) {
+ return &textUnmarshalerDecoder{
+ valType: typ,
+ }
+ }
+ return &lazyErrorDecoder{err: fmt.Errorf("unsupported map key type: %v", typ)}
+ }
+}
+
+func encoderOfMapKey(ctx *ctx, typ reflect2.Type) ValEncoder {
+ encoder := ctx.encoderExtension.CreateMapKeyEncoder(typ)
+ if encoder != nil {
+ return encoder
+ }
+ for _, extension := range ctx.extraExtensions {
+ encoder := extension.CreateMapKeyEncoder(typ)
+ if encoder != nil {
+ return encoder
+ }
+ }
+ switch typ.Kind() {
+ case reflect.String:
+ return encoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
+ case reflect.Bool,
+ reflect.Uint8, reflect.Int8,
+ reflect.Uint16, reflect.Int16,
+ reflect.Uint32, reflect.Int32,
+ reflect.Uint64, reflect.Int64,
+ reflect.Uint, reflect.Int,
+ reflect.Float32, reflect.Float64,
+ reflect.Uintptr:
+ typ = reflect2.DefaultTypeOfKind(typ.Kind())
+ return &numericMapKeyEncoder{encoderOfType(ctx, typ)}
+ default:
+ if typ == textMarshalerType {
+ return &directTextMarshalerEncoder{
+ stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
+ }
+ }
+ if typ.Implements(textMarshalerType) {
+ return &textMarshalerEncoder{
+ valType: typ,
+ stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
+ }
+ }
+ if typ.Kind() == reflect.Interface {
+ return &dynamicMapKeyEncoder{ctx, typ}
+ }
+ return &lazyErrorEncoder{err: fmt.Errorf("unsupported map key type: %v", typ)}
+ }
+}
+
+type mapDecoder struct {
+ mapType *reflect2.UnsafeMapType
+ keyType reflect2.Type
+ elemType reflect2.Type
+ keyDecoder ValDecoder
+ elemDecoder ValDecoder
+}
+
+func (decoder *mapDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ mapType := decoder.mapType
+ c := iter.nextToken()
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ *(*unsafe.Pointer)(ptr) = nil
+ mapType.UnsafeSet(ptr, mapType.UnsafeNew())
+ return
+ }
+ if mapType.UnsafeIsNil(ptr) {
+ mapType.UnsafeSet(ptr, mapType.UnsafeMakeMap(0))
+ }
+ if c != '{' {
+ iter.ReportError("ReadMapCB", `expect { or n, but found `+string([]byte{c}))
+ return
+ }
+ c = iter.nextToken()
+ if c == '}' {
+ return
+ }
+ if c != '"' {
+ iter.ReportError("ReadMapCB", `expect " after }, but found `+string([]byte{c}))
+ return
+ }
+ iter.unreadByte()
+ key := decoder.keyType.UnsafeNew()
+ decoder.keyDecoder.Decode(key, iter)
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadMapCB", "expect : after object field, but found "+string([]byte{c}))
+ return
+ }
+ elem := decoder.elemType.UnsafeNew()
+ decoder.elemDecoder.Decode(elem, iter)
+ decoder.mapType.UnsafeSetIndex(ptr, key, elem)
+ for c = iter.nextToken(); c == ','; c = iter.nextToken() {
+ key := decoder.keyType.UnsafeNew()
+ decoder.keyDecoder.Decode(key, iter)
+ c = iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadMapCB", "expect : after object field, but found "+string([]byte{c}))
+ return
+ }
+ elem := decoder.elemType.UnsafeNew()
+ decoder.elemDecoder.Decode(elem, iter)
+ decoder.mapType.UnsafeSetIndex(ptr, key, elem)
+ }
+ if c != '}' {
+ iter.ReportError("ReadMapCB", `expect }, but found `+string([]byte{c}))
+ }
+}
+
+type numericMapKeyDecoder struct {
+ decoder ValDecoder
+}
+
+func (decoder *numericMapKeyDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ c := iter.nextToken()
+ if c != '"' {
+ iter.ReportError("ReadMapCB", `expect ", but found `+string([]byte{c}))
+ return
+ }
+ decoder.decoder.Decode(ptr, iter)
+ c = iter.nextToken()
+ if c != '"' {
+ iter.ReportError("ReadMapCB", `expect ", but found `+string([]byte{c}))
+ return
+ }
+}
+
+type numericMapKeyEncoder struct {
+ encoder ValEncoder
+}
+
+func (encoder *numericMapKeyEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.writeByte('"')
+ encoder.encoder.Encode(ptr, stream)
+ stream.writeByte('"')
+}
+
+func (encoder *numericMapKeyEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return false
+}
+
+type dynamicMapKeyEncoder struct {
+ ctx *ctx
+ valType reflect2.Type
+}
+
+func (encoder *dynamicMapKeyEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ obj := encoder.valType.UnsafeIndirect(ptr)
+ encoderOfMapKey(encoder.ctx, reflect2.TypeOf(obj)).Encode(reflect2.PtrOf(obj), stream)
+}
+
+func (encoder *dynamicMapKeyEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ obj := encoder.valType.UnsafeIndirect(ptr)
+ return encoderOfMapKey(encoder.ctx, reflect2.TypeOf(obj)).IsEmpty(reflect2.PtrOf(obj))
+}
+
+type mapEncoder struct {
+ mapType *reflect2.UnsafeMapType
+ keyEncoder ValEncoder
+ elemEncoder ValEncoder
+}
+
+func (encoder *mapEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteObjectStart()
+ iter := encoder.mapType.UnsafeIterate(ptr)
+ for i := 0; iter.HasNext(); i++ {
+ if i != 0 {
+ stream.WriteMore()
+ }
+ key, elem := iter.UnsafeNext()
+ encoder.keyEncoder.Encode(key, stream)
+ if stream.indention > 0 {
+ stream.writeTwoBytes(byte(':'), byte(' '))
+ } else {
+ stream.writeByte(':')
+ }
+ encoder.elemEncoder.Encode(elem, stream)
+ }
+ stream.WriteObjectEnd()
+}
+
+func (encoder *mapEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ iter := encoder.mapType.UnsafeIterate(ptr)
+ return !iter.HasNext()
+}
+
+type sortKeysMapEncoder struct {
+ mapType *reflect2.UnsafeMapType
+ keyEncoder ValEncoder
+ elemEncoder ValEncoder
+}
+
+func (encoder *sortKeysMapEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ if *(*unsafe.Pointer)(ptr) == nil {
+ stream.WriteNil()
+ return
+ }
+ stream.WriteObjectStart()
+ mapIter := encoder.mapType.UnsafeIterate(ptr)
+ subStream := stream.cfg.BorrowStream(nil)
+ subIter := stream.cfg.BorrowIterator(nil)
+ keyValues := encodedKeyValues{}
+ for mapIter.HasNext() {
+ subStream.buf = make([]byte, 0, 64)
+ key, elem := mapIter.UnsafeNext()
+ encoder.keyEncoder.Encode(key, subStream)
+ if subStream.Error != nil && subStream.Error != io.EOF && stream.Error == nil {
+ stream.Error = subStream.Error
+ }
+ encodedKey := subStream.Buffer()
+ subIter.ResetBytes(encodedKey)
+ decodedKey := subIter.ReadString()
+ if stream.indention > 0 {
+ subStream.writeTwoBytes(byte(':'), byte(' '))
+ } else {
+ subStream.writeByte(':')
+ }
+ encoder.elemEncoder.Encode(elem, subStream)
+ keyValues = append(keyValues, encodedKV{
+ key: decodedKey,
+ keyValue: subStream.Buffer(),
+ })
+ }
+ sort.Sort(keyValues)
+ for i, keyValue := range keyValues {
+ if i != 0 {
+ stream.WriteMore()
+ }
+ stream.Write(keyValue.keyValue)
+ }
+ stream.WriteObjectEnd()
+ stream.cfg.ReturnStream(subStream)
+ stream.cfg.ReturnIterator(subIter)
+}
+
+func (encoder *sortKeysMapEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ iter := encoder.mapType.UnsafeIterate(ptr)
+ return !iter.HasNext()
+}
+
+type encodedKeyValues []encodedKV
+
+type encodedKV struct {
+ key string
+ keyValue []byte
+}
+
+func (sv encodedKeyValues) Len() int { return len(sv) }
+func (sv encodedKeyValues) Swap(i, j int) { sv[i], sv[j] = sv[j], sv[i] }
+func (sv encodedKeyValues) Less(i, j int) bool { return sv[i].key < sv[j].key }
diff --git a/vendor/github.com/json-iterator/go/reflect_marshaler.go b/vendor/github.com/json-iterator/go/reflect_marshaler.go
new file mode 100644
index 000000000..58ac959ad
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_marshaler.go
@@ -0,0 +1,218 @@
+package jsoniter
+
+import (
+ "encoding"
+ "encoding/json"
+ "github.com/modern-go/reflect2"
+ "unsafe"
+)
+
+var marshalerType = reflect2.TypeOfPtr((*json.Marshaler)(nil)).Elem()
+var unmarshalerType = reflect2.TypeOfPtr((*json.Unmarshaler)(nil)).Elem()
+var textMarshalerType = reflect2.TypeOfPtr((*encoding.TextMarshaler)(nil)).Elem()
+var textUnmarshalerType = reflect2.TypeOfPtr((*encoding.TextUnmarshaler)(nil)).Elem()
+
+func createDecoderOfMarshaler(ctx *ctx, typ reflect2.Type) ValDecoder {
+ ptrType := reflect2.PtrTo(typ)
+ if ptrType.Implements(unmarshalerType) {
+ return &referenceDecoder{
+ &unmarshalerDecoder{ptrType},
+ }
+ }
+ if ptrType.Implements(textUnmarshalerType) {
+ return &referenceDecoder{
+ &textUnmarshalerDecoder{ptrType},
+ }
+ }
+ return nil
+}
+
+func createEncoderOfMarshaler(ctx *ctx, typ reflect2.Type) ValEncoder {
+ if typ == marshalerType {
+ checkIsEmpty := createCheckIsEmpty(ctx, typ)
+ var encoder ValEncoder = &directMarshalerEncoder{
+ checkIsEmpty: checkIsEmpty,
+ }
+ return encoder
+ }
+ if typ.Implements(marshalerType) {
+ checkIsEmpty := createCheckIsEmpty(ctx, typ)
+ var encoder ValEncoder = &marshalerEncoder{
+ valType: typ,
+ checkIsEmpty: checkIsEmpty,
+ }
+ return encoder
+ }
+ ptrType := reflect2.PtrTo(typ)
+ if ctx.prefix != "" && ptrType.Implements(marshalerType) {
+ checkIsEmpty := createCheckIsEmpty(ctx, ptrType)
+ var encoder ValEncoder = &marshalerEncoder{
+ valType: ptrType,
+ checkIsEmpty: checkIsEmpty,
+ }
+ return &referenceEncoder{encoder}
+ }
+ if typ == textMarshalerType {
+ checkIsEmpty := createCheckIsEmpty(ctx, typ)
+ var encoder ValEncoder = &directTextMarshalerEncoder{
+ checkIsEmpty: checkIsEmpty,
+ stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
+ }
+ return encoder
+ }
+ if typ.Implements(textMarshalerType) {
+ checkIsEmpty := createCheckIsEmpty(ctx, typ)
+ var encoder ValEncoder = &textMarshalerEncoder{
+ valType: typ,
+ stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
+ checkIsEmpty: checkIsEmpty,
+ }
+ return encoder
+ }
+ // if prefix is empty, the type is the root type
+ if ctx.prefix != "" && ptrType.Implements(textMarshalerType) {
+ checkIsEmpty := createCheckIsEmpty(ctx, ptrType)
+ var encoder ValEncoder = &textMarshalerEncoder{
+ valType: ptrType,
+ stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
+ checkIsEmpty: checkIsEmpty,
+ }
+ return &referenceEncoder{encoder}
+ }
+ return nil
+}
+
+type marshalerEncoder struct {
+ checkIsEmpty checkIsEmpty
+ valType reflect2.Type
+}
+
+func (encoder *marshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ obj := encoder.valType.UnsafeIndirect(ptr)
+ if encoder.valType.IsNullable() && reflect2.IsNil(obj) {
+ stream.WriteNil()
+ return
+ }
+ marshaler := obj.(json.Marshaler)
+ bytes, err := marshaler.MarshalJSON()
+ if err != nil {
+ stream.Error = err
+ } else {
+ stream.Write(bytes)
+ }
+}
+
+func (encoder *marshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.checkIsEmpty.IsEmpty(ptr)
+}
+
+type directMarshalerEncoder struct {
+ checkIsEmpty checkIsEmpty
+}
+
+func (encoder *directMarshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ marshaler := *(*json.Marshaler)(ptr)
+ if marshaler == nil {
+ stream.WriteNil()
+ return
+ }
+ bytes, err := marshaler.MarshalJSON()
+ if err != nil {
+ stream.Error = err
+ } else {
+ stream.Write(bytes)
+ }
+}
+
+func (encoder *directMarshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.checkIsEmpty.IsEmpty(ptr)
+}
+
+type textMarshalerEncoder struct {
+ valType reflect2.Type
+ stringEncoder ValEncoder
+ checkIsEmpty checkIsEmpty
+}
+
+func (encoder *textMarshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ obj := encoder.valType.UnsafeIndirect(ptr)
+ if encoder.valType.IsNullable() && reflect2.IsNil(obj) {
+ stream.WriteNil()
+ return
+ }
+ marshaler := (obj).(encoding.TextMarshaler)
+ bytes, err := marshaler.MarshalText()
+ if err != nil {
+ stream.Error = err
+ } else {
+ str := string(bytes)
+ encoder.stringEncoder.Encode(unsafe.Pointer(&str), stream)
+ }
+}
+
+func (encoder *textMarshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.checkIsEmpty.IsEmpty(ptr)
+}
+
+type directTextMarshalerEncoder struct {
+ stringEncoder ValEncoder
+ checkIsEmpty checkIsEmpty
+}
+
+func (encoder *directTextMarshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ marshaler := *(*encoding.TextMarshaler)(ptr)
+ if marshaler == nil {
+ stream.WriteNil()
+ return
+ }
+ bytes, err := marshaler.MarshalText()
+ if err != nil {
+ stream.Error = err
+ } else {
+ str := string(bytes)
+ encoder.stringEncoder.Encode(unsafe.Pointer(&str), stream)
+ }
+}
+
+func (encoder *directTextMarshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.checkIsEmpty.IsEmpty(ptr)
+}
+
+type unmarshalerDecoder struct {
+ valType reflect2.Type
+}
+
+func (decoder *unmarshalerDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ valType := decoder.valType
+ obj := valType.UnsafeIndirect(ptr)
+ unmarshaler := obj.(json.Unmarshaler)
+ iter.nextToken()
+ iter.unreadByte() // skip spaces
+ bytes := iter.SkipAndReturnBytes()
+ err := unmarshaler.UnmarshalJSON(bytes)
+ if err != nil {
+ iter.ReportError("unmarshalerDecoder", err.Error())
+ }
+}
+
+type textUnmarshalerDecoder struct {
+ valType reflect2.Type
+}
+
+func (decoder *textUnmarshalerDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ valType := decoder.valType
+ obj := valType.UnsafeIndirect(ptr)
+ if reflect2.IsNil(obj) {
+ ptrType := valType.(*reflect2.UnsafePtrType)
+ elemType := ptrType.Elem()
+ elem := elemType.UnsafeNew()
+ ptrType.UnsafeSet(ptr, unsafe.Pointer(&elem))
+ obj = valType.UnsafeIndirect(ptr)
+ }
+ unmarshaler := (obj).(encoding.TextUnmarshaler)
+ str := iter.ReadString()
+ err := unmarshaler.UnmarshalText([]byte(str))
+ if err != nil {
+ iter.ReportError("textUnmarshalerDecoder", err.Error())
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_native.go b/vendor/github.com/json-iterator/go/reflect_native.go
new file mode 100644
index 000000000..9042eb0cb
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_native.go
@@ -0,0 +1,451 @@
+package jsoniter
+
+import (
+ "encoding/base64"
+ "reflect"
+ "strconv"
+ "unsafe"
+
+ "github.com/modern-go/reflect2"
+)
+
+const ptrSize = 32 << uintptr(^uintptr(0)>>63)
+
+func createEncoderOfNative(ctx *ctx, typ reflect2.Type) ValEncoder {
+ if typ.Kind() == reflect.Slice && typ.(reflect2.SliceType).Elem().Kind() == reflect.Uint8 {
+ sliceDecoder := decoderOfSlice(ctx, typ)
+ return &base64Codec{sliceDecoder: sliceDecoder}
+ }
+ typeName := typ.String()
+ kind := typ.Kind()
+ switch kind {
+ case reflect.String:
+ if typeName != "string" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*string)(nil)).Elem())
+ }
+ return &stringCodec{}
+ case reflect.Int:
+ if typeName != "int" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*int)(nil)).Elem())
+ }
+ if strconv.IntSize == 32 {
+ return &int32Codec{}
+ }
+ return &int64Codec{}
+ case reflect.Int8:
+ if typeName != "int8" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*int8)(nil)).Elem())
+ }
+ return &int8Codec{}
+ case reflect.Int16:
+ if typeName != "int16" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*int16)(nil)).Elem())
+ }
+ return &int16Codec{}
+ case reflect.Int32:
+ if typeName != "int32" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*int32)(nil)).Elem())
+ }
+ return &int32Codec{}
+ case reflect.Int64:
+ if typeName != "int64" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*int64)(nil)).Elem())
+ }
+ return &int64Codec{}
+ case reflect.Uint:
+ if typeName != "uint" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*uint)(nil)).Elem())
+ }
+ if strconv.IntSize == 32 {
+ return &uint32Codec{}
+ }
+ return &uint64Codec{}
+ case reflect.Uint8:
+ if typeName != "uint8" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*uint8)(nil)).Elem())
+ }
+ return &uint8Codec{}
+ case reflect.Uint16:
+ if typeName != "uint16" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*uint16)(nil)).Elem())
+ }
+ return &uint16Codec{}
+ case reflect.Uint32:
+ if typeName != "uint32" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*uint32)(nil)).Elem())
+ }
+ return &uint32Codec{}
+ case reflect.Uintptr:
+ if typeName != "uintptr" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*uintptr)(nil)).Elem())
+ }
+ if ptrSize == 32 {
+ return &uint32Codec{}
+ }
+ return &uint64Codec{}
+ case reflect.Uint64:
+ if typeName != "uint64" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*uint64)(nil)).Elem())
+ }
+ return &uint64Codec{}
+ case reflect.Float32:
+ if typeName != "float32" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*float32)(nil)).Elem())
+ }
+ return &float32Codec{}
+ case reflect.Float64:
+ if typeName != "float64" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*float64)(nil)).Elem())
+ }
+ return &float64Codec{}
+ case reflect.Bool:
+ if typeName != "bool" {
+ return encoderOfType(ctx, reflect2.TypeOfPtr((*bool)(nil)).Elem())
+ }
+ return &boolCodec{}
+ }
+ return nil
+}
+
+func createDecoderOfNative(ctx *ctx, typ reflect2.Type) ValDecoder {
+ if typ.Kind() == reflect.Slice && typ.(reflect2.SliceType).Elem().Kind() == reflect.Uint8 {
+ sliceDecoder := decoderOfSlice(ctx, typ)
+ return &base64Codec{sliceDecoder: sliceDecoder}
+ }
+ typeName := typ.String()
+ switch typ.Kind() {
+ case reflect.String:
+ if typeName != "string" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*string)(nil)).Elem())
+ }
+ return &stringCodec{}
+ case reflect.Int:
+ if typeName != "int" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*int)(nil)).Elem())
+ }
+ if strconv.IntSize == 32 {
+ return &int32Codec{}
+ }
+ return &int64Codec{}
+ case reflect.Int8:
+ if typeName != "int8" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*int8)(nil)).Elem())
+ }
+ return &int8Codec{}
+ case reflect.Int16:
+ if typeName != "int16" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*int16)(nil)).Elem())
+ }
+ return &int16Codec{}
+ case reflect.Int32:
+ if typeName != "int32" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*int32)(nil)).Elem())
+ }
+ return &int32Codec{}
+ case reflect.Int64:
+ if typeName != "int64" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*int64)(nil)).Elem())
+ }
+ return &int64Codec{}
+ case reflect.Uint:
+ if typeName != "uint" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*uint)(nil)).Elem())
+ }
+ if strconv.IntSize == 32 {
+ return &uint32Codec{}
+ }
+ return &uint64Codec{}
+ case reflect.Uint8:
+ if typeName != "uint8" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*uint8)(nil)).Elem())
+ }
+ return &uint8Codec{}
+ case reflect.Uint16:
+ if typeName != "uint16" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*uint16)(nil)).Elem())
+ }
+ return &uint16Codec{}
+ case reflect.Uint32:
+ if typeName != "uint32" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*uint32)(nil)).Elem())
+ }
+ return &uint32Codec{}
+ case reflect.Uintptr:
+ if typeName != "uintptr" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*uintptr)(nil)).Elem())
+ }
+ if ptrSize == 32 {
+ return &uint32Codec{}
+ }
+ return &uint64Codec{}
+ case reflect.Uint64:
+ if typeName != "uint64" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*uint64)(nil)).Elem())
+ }
+ return &uint64Codec{}
+ case reflect.Float32:
+ if typeName != "float32" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*float32)(nil)).Elem())
+ }
+ return &float32Codec{}
+ case reflect.Float64:
+ if typeName != "float64" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*float64)(nil)).Elem())
+ }
+ return &float64Codec{}
+ case reflect.Bool:
+ if typeName != "bool" {
+ return decoderOfType(ctx, reflect2.TypeOfPtr((*bool)(nil)).Elem())
+ }
+ return &boolCodec{}
+ }
+ return nil
+}
+
+type stringCodec struct {
+}
+
+func (codec *stringCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ *((*string)(ptr)) = iter.ReadString()
+}
+
+func (codec *stringCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ str := *((*string)(ptr))
+ stream.WriteString(str)
+}
+
+func (codec *stringCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*string)(ptr)) == ""
+}
+
+type int8Codec struct {
+}
+
+func (codec *int8Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*int8)(ptr)) = iter.ReadInt8()
+ }
+}
+
+func (codec *int8Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteInt8(*((*int8)(ptr)))
+}
+
+func (codec *int8Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*int8)(ptr)) == 0
+}
+
+type int16Codec struct {
+}
+
+func (codec *int16Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*int16)(ptr)) = iter.ReadInt16()
+ }
+}
+
+func (codec *int16Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteInt16(*((*int16)(ptr)))
+}
+
+func (codec *int16Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*int16)(ptr)) == 0
+}
+
+type int32Codec struct {
+}
+
+func (codec *int32Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*int32)(ptr)) = iter.ReadInt32()
+ }
+}
+
+func (codec *int32Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteInt32(*((*int32)(ptr)))
+}
+
+func (codec *int32Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*int32)(ptr)) == 0
+}
+
+type int64Codec struct {
+}
+
+func (codec *int64Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*int64)(ptr)) = iter.ReadInt64()
+ }
+}
+
+func (codec *int64Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteInt64(*((*int64)(ptr)))
+}
+
+func (codec *int64Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*int64)(ptr)) == 0
+}
+
+type uint8Codec struct {
+}
+
+func (codec *uint8Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*uint8)(ptr)) = iter.ReadUint8()
+ }
+}
+
+func (codec *uint8Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteUint8(*((*uint8)(ptr)))
+}
+
+func (codec *uint8Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*uint8)(ptr)) == 0
+}
+
+type uint16Codec struct {
+}
+
+func (codec *uint16Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*uint16)(ptr)) = iter.ReadUint16()
+ }
+}
+
+func (codec *uint16Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteUint16(*((*uint16)(ptr)))
+}
+
+func (codec *uint16Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*uint16)(ptr)) == 0
+}
+
+type uint32Codec struct {
+}
+
+func (codec *uint32Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*uint32)(ptr)) = iter.ReadUint32()
+ }
+}
+
+func (codec *uint32Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteUint32(*((*uint32)(ptr)))
+}
+
+func (codec *uint32Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*uint32)(ptr)) == 0
+}
+
+type uint64Codec struct {
+}
+
+func (codec *uint64Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*uint64)(ptr)) = iter.ReadUint64()
+ }
+}
+
+func (codec *uint64Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteUint64(*((*uint64)(ptr)))
+}
+
+func (codec *uint64Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*uint64)(ptr)) == 0
+}
+
+type float32Codec struct {
+}
+
+func (codec *float32Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*float32)(ptr)) = iter.ReadFloat32()
+ }
+}
+
+func (codec *float32Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteFloat32(*((*float32)(ptr)))
+}
+
+func (codec *float32Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*float32)(ptr)) == 0
+}
+
+type float64Codec struct {
+}
+
+func (codec *float64Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*float64)(ptr)) = iter.ReadFloat64()
+ }
+}
+
+func (codec *float64Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteFloat64(*((*float64)(ptr)))
+}
+
+func (codec *float64Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*float64)(ptr)) == 0
+}
+
+type boolCodec struct {
+}
+
+func (codec *boolCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.ReadNil() {
+ *((*bool)(ptr)) = iter.ReadBool()
+ }
+}
+
+func (codec *boolCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteBool(*((*bool)(ptr)))
+}
+
+func (codec *boolCodec) IsEmpty(ptr unsafe.Pointer) bool {
+ return !(*((*bool)(ptr)))
+}
+
+type base64Codec struct {
+ sliceType *reflect2.UnsafeSliceType
+ sliceDecoder ValDecoder
+}
+
+func (codec *base64Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if iter.ReadNil() {
+ codec.sliceType.UnsafeSetNil(ptr)
+ return
+ }
+ switch iter.WhatIsNext() {
+ case StringValue:
+ src := iter.ReadString()
+ dst, err := base64.StdEncoding.DecodeString(src)
+ if err != nil {
+ iter.ReportError("decode base64", err.Error())
+ } else {
+ codec.sliceType.UnsafeSet(ptr, unsafe.Pointer(&dst))
+ }
+ case ArrayValue:
+ codec.sliceDecoder.Decode(ptr, iter)
+ default:
+ iter.ReportError("base64Codec", "invalid input")
+ }
+}
+
+func (codec *base64Codec) Encode(ptr unsafe.Pointer, stream *Stream) {
+ src := *((*[]byte)(ptr))
+ if len(src) == 0 {
+ stream.WriteNil()
+ return
+ }
+ encoding := base64.StdEncoding
+ stream.writeByte('"')
+ size := encoding.EncodedLen(len(src))
+ buf := make([]byte, size)
+ encoding.Encode(buf, src)
+ stream.buf = append(stream.buf, buf...)
+ stream.writeByte('"')
+}
+
+func (codec *base64Codec) IsEmpty(ptr unsafe.Pointer) bool {
+ return len(*((*[]byte)(ptr))) == 0
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_optional.go b/vendor/github.com/json-iterator/go/reflect_optional.go
new file mode 100644
index 000000000..43ec71d6d
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_optional.go
@@ -0,0 +1,133 @@
+package jsoniter
+
+import (
+ "github.com/modern-go/reflect2"
+ "reflect"
+ "unsafe"
+)
+
+func decoderOfOptional(ctx *ctx, typ reflect2.Type) ValDecoder {
+ ptrType := typ.(*reflect2.UnsafePtrType)
+ elemType := ptrType.Elem()
+ decoder := decoderOfType(ctx, elemType)
+ if ctx.prefix == "" && elemType.Kind() == reflect.Ptr {
+ return &dereferenceDecoder{elemType, decoder}
+ }
+ return &OptionalDecoder{elemType, decoder}
+}
+
+func encoderOfOptional(ctx *ctx, typ reflect2.Type) ValEncoder {
+ ptrType := typ.(*reflect2.UnsafePtrType)
+ elemType := ptrType.Elem()
+ elemEncoder := encoderOfType(ctx, elemType)
+ encoder := &OptionalEncoder{elemEncoder}
+ return encoder
+}
+
+type OptionalDecoder struct {
+ ValueType reflect2.Type
+ ValueDecoder ValDecoder
+}
+
+func (decoder *OptionalDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if iter.ReadNil() {
+ *((*unsafe.Pointer)(ptr)) = nil
+ } else {
+ if *((*unsafe.Pointer)(ptr)) == nil {
+ //pointer to null, we have to allocate memory to hold the value
+ newPtr := decoder.ValueType.UnsafeNew()
+ decoder.ValueDecoder.Decode(newPtr, iter)
+ *((*unsafe.Pointer)(ptr)) = newPtr
+ } else {
+ //reuse existing instance
+ decoder.ValueDecoder.Decode(*((*unsafe.Pointer)(ptr)), iter)
+ }
+ }
+}
+
+type dereferenceDecoder struct {
+ // only to deference a pointer
+ valueType reflect2.Type
+ valueDecoder ValDecoder
+}
+
+func (decoder *dereferenceDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if *((*unsafe.Pointer)(ptr)) == nil {
+ //pointer to null, we have to allocate memory to hold the value
+ newPtr := decoder.valueType.UnsafeNew()
+ decoder.valueDecoder.Decode(newPtr, iter)
+ *((*unsafe.Pointer)(ptr)) = newPtr
+ } else {
+ //reuse existing instance
+ decoder.valueDecoder.Decode(*((*unsafe.Pointer)(ptr)), iter)
+ }
+}
+
+type OptionalEncoder struct {
+ ValueEncoder ValEncoder
+}
+
+func (encoder *OptionalEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ if *((*unsafe.Pointer)(ptr)) == nil {
+ stream.WriteNil()
+ } else {
+ encoder.ValueEncoder.Encode(*((*unsafe.Pointer)(ptr)), stream)
+ }
+}
+
+func (encoder *OptionalEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return *((*unsafe.Pointer)(ptr)) == nil
+}
+
+type dereferenceEncoder struct {
+ ValueEncoder ValEncoder
+}
+
+func (encoder *dereferenceEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ if *((*unsafe.Pointer)(ptr)) == nil {
+ stream.WriteNil()
+ } else {
+ encoder.ValueEncoder.Encode(*((*unsafe.Pointer)(ptr)), stream)
+ }
+}
+
+func (encoder *dereferenceEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ dePtr := *((*unsafe.Pointer)(ptr))
+ if dePtr == nil {
+ return true
+ }
+ return encoder.ValueEncoder.IsEmpty(dePtr)
+}
+
+func (encoder *dereferenceEncoder) IsEmbeddedPtrNil(ptr unsafe.Pointer) bool {
+ deReferenced := *((*unsafe.Pointer)(ptr))
+ if deReferenced == nil {
+ return true
+ }
+ isEmbeddedPtrNil, converted := encoder.ValueEncoder.(IsEmbeddedPtrNil)
+ if !converted {
+ return false
+ }
+ fieldPtr := unsafe.Pointer(deReferenced)
+ return isEmbeddedPtrNil.IsEmbeddedPtrNil(fieldPtr)
+}
+
+type referenceEncoder struct {
+ encoder ValEncoder
+}
+
+func (encoder *referenceEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ encoder.encoder.Encode(unsafe.Pointer(&ptr), stream)
+}
+
+func (encoder *referenceEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.encoder.IsEmpty(unsafe.Pointer(&ptr))
+}
+
+type referenceDecoder struct {
+ decoder ValDecoder
+}
+
+func (decoder *referenceDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ decoder.decoder.Decode(unsafe.Pointer(&ptr), iter)
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_slice.go b/vendor/github.com/json-iterator/go/reflect_slice.go
new file mode 100644
index 000000000..9441d79df
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_slice.go
@@ -0,0 +1,99 @@
+package jsoniter
+
+import (
+ "fmt"
+ "github.com/modern-go/reflect2"
+ "io"
+ "unsafe"
+)
+
+func decoderOfSlice(ctx *ctx, typ reflect2.Type) ValDecoder {
+ sliceType := typ.(*reflect2.UnsafeSliceType)
+ decoder := decoderOfType(ctx.append("[sliceElem]"), sliceType.Elem())
+ return &sliceDecoder{sliceType, decoder}
+}
+
+func encoderOfSlice(ctx *ctx, typ reflect2.Type) ValEncoder {
+ sliceType := typ.(*reflect2.UnsafeSliceType)
+ encoder := encoderOfType(ctx.append("[sliceElem]"), sliceType.Elem())
+ return &sliceEncoder{sliceType, encoder}
+}
+
+type sliceEncoder struct {
+ sliceType *reflect2.UnsafeSliceType
+ elemEncoder ValEncoder
+}
+
+func (encoder *sliceEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ if encoder.sliceType.UnsafeIsNil(ptr) {
+ stream.WriteNil()
+ return
+ }
+ length := encoder.sliceType.UnsafeLengthOf(ptr)
+ if length == 0 {
+ stream.WriteEmptyArray()
+ return
+ }
+ stream.WriteArrayStart()
+ encoder.elemEncoder.Encode(encoder.sliceType.UnsafeGetIndex(ptr, 0), stream)
+ for i := 1; i < length; i++ {
+ stream.WriteMore()
+ elemPtr := encoder.sliceType.UnsafeGetIndex(ptr, i)
+ encoder.elemEncoder.Encode(elemPtr, stream)
+ }
+ stream.WriteArrayEnd()
+ if stream.Error != nil && stream.Error != io.EOF {
+ stream.Error = fmt.Errorf("%v: %s", encoder.sliceType, stream.Error.Error())
+ }
+}
+
+func (encoder *sliceEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.sliceType.UnsafeLengthOf(ptr) == 0
+}
+
+type sliceDecoder struct {
+ sliceType *reflect2.UnsafeSliceType
+ elemDecoder ValDecoder
+}
+
+func (decoder *sliceDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ decoder.doDecode(ptr, iter)
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v: %s", decoder.sliceType, iter.Error.Error())
+ }
+}
+
+func (decoder *sliceDecoder) doDecode(ptr unsafe.Pointer, iter *Iterator) {
+ c := iter.nextToken()
+ sliceType := decoder.sliceType
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ sliceType.UnsafeSetNil(ptr)
+ return
+ }
+ if c != '[' {
+ iter.ReportError("decode slice", "expect [ or n, but found "+string([]byte{c}))
+ return
+ }
+ c = iter.nextToken()
+ if c == ']' {
+ sliceType.UnsafeSet(ptr, sliceType.UnsafeMakeSlice(0, 0))
+ return
+ }
+ iter.unreadByte()
+ sliceType.UnsafeGrow(ptr, 1)
+ elemPtr := sliceType.UnsafeGetIndex(ptr, 0)
+ decoder.elemDecoder.Decode(elemPtr, iter)
+ length := 1
+ for c = iter.nextToken(); c == ','; c = iter.nextToken() {
+ idx := length
+ length += 1
+ sliceType.UnsafeGrow(ptr, length)
+ elemPtr = sliceType.UnsafeGetIndex(ptr, idx)
+ decoder.elemDecoder.Decode(elemPtr, iter)
+ }
+ if c != ']' {
+ iter.ReportError("decode slice", "expect ], but found "+string([]byte{c}))
+ return
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_struct_decoder.go b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go
new file mode 100644
index 000000000..355d2d116
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go
@@ -0,0 +1,1048 @@
+package jsoniter
+
+import (
+ "fmt"
+ "io"
+ "strings"
+ "unsafe"
+
+ "github.com/modern-go/reflect2"
+)
+
+func decoderOfStruct(ctx *ctx, typ reflect2.Type) ValDecoder {
+ bindings := map[string]*Binding{}
+ structDescriptor := describeStruct(ctx, typ)
+ for _, binding := range structDescriptor.Fields {
+ for _, fromName := range binding.FromNames {
+ old := bindings[fromName]
+ if old == nil {
+ bindings[fromName] = binding
+ continue
+ }
+ ignoreOld, ignoreNew := resolveConflictBinding(ctx.frozenConfig, old, binding)
+ if ignoreOld {
+ delete(bindings, fromName)
+ }
+ if !ignoreNew {
+ bindings[fromName] = binding
+ }
+ }
+ }
+ fields := map[string]*structFieldDecoder{}
+ for k, binding := range bindings {
+ fields[k] = binding.Decoder.(*structFieldDecoder)
+ }
+
+ if !ctx.caseSensitive() {
+ for k, binding := range bindings {
+ if _, found := fields[strings.ToLower(k)]; !found {
+ fields[strings.ToLower(k)] = binding.Decoder.(*structFieldDecoder)
+ }
+ }
+ }
+
+ return createStructDecoder(ctx, typ, fields)
+}
+
+func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structFieldDecoder) ValDecoder {
+ if ctx.disallowUnknownFields {
+ return &generalStructDecoder{typ: typ, fields: fields, disallowUnknownFields: true}
+ }
+ knownHash := map[int64]struct{}{
+ 0: {},
+ }
+
+ switch len(fields) {
+ case 0:
+ return &skipObjectDecoder{typ}
+ case 1:
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ return &oneFieldStructDecoder{typ, fieldHash, fieldDecoder}
+ }
+ case 2:
+ var fieldHash1 int64
+ var fieldHash2 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldHash1 == 0 {
+ fieldHash1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else {
+ fieldHash2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ }
+ }
+ return &twoFieldsStructDecoder{typ, fieldHash1, fieldDecoder1, fieldHash2, fieldDecoder2}
+ case 3:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ }
+ }
+ return &threeFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3}
+ case 4:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldName4 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ var fieldDecoder4 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else if fieldName3 == 0 {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ } else {
+ fieldName4 = fieldHash
+ fieldDecoder4 = fieldDecoder
+ }
+ }
+ return &fourFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3,
+ fieldName4, fieldDecoder4}
+ case 5:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldName4 int64
+ var fieldName5 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ var fieldDecoder4 *structFieldDecoder
+ var fieldDecoder5 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else if fieldName3 == 0 {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ } else if fieldName4 == 0 {
+ fieldName4 = fieldHash
+ fieldDecoder4 = fieldDecoder
+ } else {
+ fieldName5 = fieldHash
+ fieldDecoder5 = fieldDecoder
+ }
+ }
+ return &fiveFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3,
+ fieldName4, fieldDecoder4,
+ fieldName5, fieldDecoder5}
+ case 6:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldName4 int64
+ var fieldName5 int64
+ var fieldName6 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ var fieldDecoder4 *structFieldDecoder
+ var fieldDecoder5 *structFieldDecoder
+ var fieldDecoder6 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else if fieldName3 == 0 {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ } else if fieldName4 == 0 {
+ fieldName4 = fieldHash
+ fieldDecoder4 = fieldDecoder
+ } else if fieldName5 == 0 {
+ fieldName5 = fieldHash
+ fieldDecoder5 = fieldDecoder
+ } else {
+ fieldName6 = fieldHash
+ fieldDecoder6 = fieldDecoder
+ }
+ }
+ return &sixFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3,
+ fieldName4, fieldDecoder4,
+ fieldName5, fieldDecoder5,
+ fieldName6, fieldDecoder6}
+ case 7:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldName4 int64
+ var fieldName5 int64
+ var fieldName6 int64
+ var fieldName7 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ var fieldDecoder4 *structFieldDecoder
+ var fieldDecoder5 *structFieldDecoder
+ var fieldDecoder6 *structFieldDecoder
+ var fieldDecoder7 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else if fieldName3 == 0 {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ } else if fieldName4 == 0 {
+ fieldName4 = fieldHash
+ fieldDecoder4 = fieldDecoder
+ } else if fieldName5 == 0 {
+ fieldName5 = fieldHash
+ fieldDecoder5 = fieldDecoder
+ } else if fieldName6 == 0 {
+ fieldName6 = fieldHash
+ fieldDecoder6 = fieldDecoder
+ } else {
+ fieldName7 = fieldHash
+ fieldDecoder7 = fieldDecoder
+ }
+ }
+ return &sevenFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3,
+ fieldName4, fieldDecoder4,
+ fieldName5, fieldDecoder5,
+ fieldName6, fieldDecoder6,
+ fieldName7, fieldDecoder7}
+ case 8:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldName4 int64
+ var fieldName5 int64
+ var fieldName6 int64
+ var fieldName7 int64
+ var fieldName8 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ var fieldDecoder4 *structFieldDecoder
+ var fieldDecoder5 *structFieldDecoder
+ var fieldDecoder6 *structFieldDecoder
+ var fieldDecoder7 *structFieldDecoder
+ var fieldDecoder8 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else if fieldName3 == 0 {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ } else if fieldName4 == 0 {
+ fieldName4 = fieldHash
+ fieldDecoder4 = fieldDecoder
+ } else if fieldName5 == 0 {
+ fieldName5 = fieldHash
+ fieldDecoder5 = fieldDecoder
+ } else if fieldName6 == 0 {
+ fieldName6 = fieldHash
+ fieldDecoder6 = fieldDecoder
+ } else if fieldName7 == 0 {
+ fieldName7 = fieldHash
+ fieldDecoder7 = fieldDecoder
+ } else {
+ fieldName8 = fieldHash
+ fieldDecoder8 = fieldDecoder
+ }
+ }
+ return &eightFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3,
+ fieldName4, fieldDecoder4,
+ fieldName5, fieldDecoder5,
+ fieldName6, fieldDecoder6,
+ fieldName7, fieldDecoder7,
+ fieldName8, fieldDecoder8}
+ case 9:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldName4 int64
+ var fieldName5 int64
+ var fieldName6 int64
+ var fieldName7 int64
+ var fieldName8 int64
+ var fieldName9 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ var fieldDecoder4 *structFieldDecoder
+ var fieldDecoder5 *structFieldDecoder
+ var fieldDecoder6 *structFieldDecoder
+ var fieldDecoder7 *structFieldDecoder
+ var fieldDecoder8 *structFieldDecoder
+ var fieldDecoder9 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else if fieldName3 == 0 {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ } else if fieldName4 == 0 {
+ fieldName4 = fieldHash
+ fieldDecoder4 = fieldDecoder
+ } else if fieldName5 == 0 {
+ fieldName5 = fieldHash
+ fieldDecoder5 = fieldDecoder
+ } else if fieldName6 == 0 {
+ fieldName6 = fieldHash
+ fieldDecoder6 = fieldDecoder
+ } else if fieldName7 == 0 {
+ fieldName7 = fieldHash
+ fieldDecoder7 = fieldDecoder
+ } else if fieldName8 == 0 {
+ fieldName8 = fieldHash
+ fieldDecoder8 = fieldDecoder
+ } else {
+ fieldName9 = fieldHash
+ fieldDecoder9 = fieldDecoder
+ }
+ }
+ return &nineFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3,
+ fieldName4, fieldDecoder4,
+ fieldName5, fieldDecoder5,
+ fieldName6, fieldDecoder6,
+ fieldName7, fieldDecoder7,
+ fieldName8, fieldDecoder8,
+ fieldName9, fieldDecoder9}
+ case 10:
+ var fieldName1 int64
+ var fieldName2 int64
+ var fieldName3 int64
+ var fieldName4 int64
+ var fieldName5 int64
+ var fieldName6 int64
+ var fieldName7 int64
+ var fieldName8 int64
+ var fieldName9 int64
+ var fieldName10 int64
+ var fieldDecoder1 *structFieldDecoder
+ var fieldDecoder2 *structFieldDecoder
+ var fieldDecoder3 *structFieldDecoder
+ var fieldDecoder4 *structFieldDecoder
+ var fieldDecoder5 *structFieldDecoder
+ var fieldDecoder6 *structFieldDecoder
+ var fieldDecoder7 *structFieldDecoder
+ var fieldDecoder8 *structFieldDecoder
+ var fieldDecoder9 *structFieldDecoder
+ var fieldDecoder10 *structFieldDecoder
+ for fieldName, fieldDecoder := range fields {
+ fieldHash := calcHash(fieldName, ctx.caseSensitive())
+ _, known := knownHash[fieldHash]
+ if known {
+ return &generalStructDecoder{typ, fields, false}
+ }
+ knownHash[fieldHash] = struct{}{}
+ if fieldName1 == 0 {
+ fieldName1 = fieldHash
+ fieldDecoder1 = fieldDecoder
+ } else if fieldName2 == 0 {
+ fieldName2 = fieldHash
+ fieldDecoder2 = fieldDecoder
+ } else if fieldName3 == 0 {
+ fieldName3 = fieldHash
+ fieldDecoder3 = fieldDecoder
+ } else if fieldName4 == 0 {
+ fieldName4 = fieldHash
+ fieldDecoder4 = fieldDecoder
+ } else if fieldName5 == 0 {
+ fieldName5 = fieldHash
+ fieldDecoder5 = fieldDecoder
+ } else if fieldName6 == 0 {
+ fieldName6 = fieldHash
+ fieldDecoder6 = fieldDecoder
+ } else if fieldName7 == 0 {
+ fieldName7 = fieldHash
+ fieldDecoder7 = fieldDecoder
+ } else if fieldName8 == 0 {
+ fieldName8 = fieldHash
+ fieldDecoder8 = fieldDecoder
+ } else if fieldName9 == 0 {
+ fieldName9 = fieldHash
+ fieldDecoder9 = fieldDecoder
+ } else {
+ fieldName10 = fieldHash
+ fieldDecoder10 = fieldDecoder
+ }
+ }
+ return &tenFieldsStructDecoder{typ,
+ fieldName1, fieldDecoder1,
+ fieldName2, fieldDecoder2,
+ fieldName3, fieldDecoder3,
+ fieldName4, fieldDecoder4,
+ fieldName5, fieldDecoder5,
+ fieldName6, fieldDecoder6,
+ fieldName7, fieldDecoder7,
+ fieldName8, fieldDecoder8,
+ fieldName9, fieldDecoder9,
+ fieldName10, fieldDecoder10}
+ }
+ return &generalStructDecoder{typ, fields, false}
+}
+
+type generalStructDecoder struct {
+ typ reflect2.Type
+ fields map[string]*structFieldDecoder
+ disallowUnknownFields bool
+}
+
+func (decoder *generalStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ var c byte
+ for c = ','; c == ','; c = iter.nextToken() {
+ decoder.decodeOneField(ptr, iter)
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+ if c != '}' {
+ iter.ReportError("struct Decode", `expect }, but found `+string([]byte{c}))
+ }
+}
+
+func (decoder *generalStructDecoder) decodeOneField(ptr unsafe.Pointer, iter *Iterator) {
+ var field string
+ var fieldDecoder *structFieldDecoder
+ if iter.cfg.objectFieldMustBeSimpleString {
+ fieldBytes := iter.ReadStringAsSlice()
+ field = *(*string)(unsafe.Pointer(&fieldBytes))
+ fieldDecoder = decoder.fields[field]
+ if fieldDecoder == nil && !iter.cfg.caseSensitive {
+ fieldDecoder = decoder.fields[strings.ToLower(field)]
+ }
+ } else {
+ field = iter.ReadString()
+ fieldDecoder = decoder.fields[field]
+ if fieldDecoder == nil && !iter.cfg.caseSensitive {
+ fieldDecoder = decoder.fields[strings.ToLower(field)]
+ }
+ }
+ if fieldDecoder == nil {
+ msg := "found unknown field: " + field
+ if decoder.disallowUnknownFields {
+ iter.ReportError("ReadObject", msg)
+ }
+ c := iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadObject", "expect : after object field, but found "+string([]byte{c}))
+ }
+ iter.Skip()
+ return
+ }
+ c := iter.nextToken()
+ if c != ':' {
+ iter.ReportError("ReadObject", "expect : after object field, but found "+string([]byte{c}))
+ }
+ fieldDecoder.Decode(ptr, iter)
+}
+
+type skipObjectDecoder struct {
+ typ reflect2.Type
+}
+
+func (decoder *skipObjectDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ valueType := iter.WhatIsNext()
+ if valueType != ObjectValue && valueType != NilValue {
+ iter.ReportError("skipObjectDecoder", "expect object or null")
+ return
+ }
+ iter.Skip()
+}
+
+type oneFieldStructDecoder struct {
+ typ reflect2.Type
+ fieldHash int64
+ fieldDecoder *structFieldDecoder
+}
+
+func (decoder *oneFieldStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ if iter.readFieldHash() == decoder.fieldHash {
+ decoder.fieldDecoder.Decode(ptr, iter)
+ } else {
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type twoFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+}
+
+func (decoder *twoFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type threeFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+}
+
+func (decoder *threeFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type fourFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+ fieldHash4 int64
+ fieldDecoder4 *structFieldDecoder
+}
+
+func (decoder *fourFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ case decoder.fieldHash4:
+ decoder.fieldDecoder4.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type fiveFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+ fieldHash4 int64
+ fieldDecoder4 *structFieldDecoder
+ fieldHash5 int64
+ fieldDecoder5 *structFieldDecoder
+}
+
+func (decoder *fiveFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ case decoder.fieldHash4:
+ decoder.fieldDecoder4.Decode(ptr, iter)
+ case decoder.fieldHash5:
+ decoder.fieldDecoder5.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type sixFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+ fieldHash4 int64
+ fieldDecoder4 *structFieldDecoder
+ fieldHash5 int64
+ fieldDecoder5 *structFieldDecoder
+ fieldHash6 int64
+ fieldDecoder6 *structFieldDecoder
+}
+
+func (decoder *sixFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ case decoder.fieldHash4:
+ decoder.fieldDecoder4.Decode(ptr, iter)
+ case decoder.fieldHash5:
+ decoder.fieldDecoder5.Decode(ptr, iter)
+ case decoder.fieldHash6:
+ decoder.fieldDecoder6.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type sevenFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+ fieldHash4 int64
+ fieldDecoder4 *structFieldDecoder
+ fieldHash5 int64
+ fieldDecoder5 *structFieldDecoder
+ fieldHash6 int64
+ fieldDecoder6 *structFieldDecoder
+ fieldHash7 int64
+ fieldDecoder7 *structFieldDecoder
+}
+
+func (decoder *sevenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ case decoder.fieldHash4:
+ decoder.fieldDecoder4.Decode(ptr, iter)
+ case decoder.fieldHash5:
+ decoder.fieldDecoder5.Decode(ptr, iter)
+ case decoder.fieldHash6:
+ decoder.fieldDecoder6.Decode(ptr, iter)
+ case decoder.fieldHash7:
+ decoder.fieldDecoder7.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type eightFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+ fieldHash4 int64
+ fieldDecoder4 *structFieldDecoder
+ fieldHash5 int64
+ fieldDecoder5 *structFieldDecoder
+ fieldHash6 int64
+ fieldDecoder6 *structFieldDecoder
+ fieldHash7 int64
+ fieldDecoder7 *structFieldDecoder
+ fieldHash8 int64
+ fieldDecoder8 *structFieldDecoder
+}
+
+func (decoder *eightFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ case decoder.fieldHash4:
+ decoder.fieldDecoder4.Decode(ptr, iter)
+ case decoder.fieldHash5:
+ decoder.fieldDecoder5.Decode(ptr, iter)
+ case decoder.fieldHash6:
+ decoder.fieldDecoder6.Decode(ptr, iter)
+ case decoder.fieldHash7:
+ decoder.fieldDecoder7.Decode(ptr, iter)
+ case decoder.fieldHash8:
+ decoder.fieldDecoder8.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type nineFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+ fieldHash4 int64
+ fieldDecoder4 *structFieldDecoder
+ fieldHash5 int64
+ fieldDecoder5 *structFieldDecoder
+ fieldHash6 int64
+ fieldDecoder6 *structFieldDecoder
+ fieldHash7 int64
+ fieldDecoder7 *structFieldDecoder
+ fieldHash8 int64
+ fieldDecoder8 *structFieldDecoder
+ fieldHash9 int64
+ fieldDecoder9 *structFieldDecoder
+}
+
+func (decoder *nineFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ case decoder.fieldHash4:
+ decoder.fieldDecoder4.Decode(ptr, iter)
+ case decoder.fieldHash5:
+ decoder.fieldDecoder5.Decode(ptr, iter)
+ case decoder.fieldHash6:
+ decoder.fieldDecoder6.Decode(ptr, iter)
+ case decoder.fieldHash7:
+ decoder.fieldDecoder7.Decode(ptr, iter)
+ case decoder.fieldHash8:
+ decoder.fieldDecoder8.Decode(ptr, iter)
+ case decoder.fieldHash9:
+ decoder.fieldDecoder9.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type tenFieldsStructDecoder struct {
+ typ reflect2.Type
+ fieldHash1 int64
+ fieldDecoder1 *structFieldDecoder
+ fieldHash2 int64
+ fieldDecoder2 *structFieldDecoder
+ fieldHash3 int64
+ fieldDecoder3 *structFieldDecoder
+ fieldHash4 int64
+ fieldDecoder4 *structFieldDecoder
+ fieldHash5 int64
+ fieldDecoder5 *structFieldDecoder
+ fieldHash6 int64
+ fieldDecoder6 *structFieldDecoder
+ fieldHash7 int64
+ fieldDecoder7 *structFieldDecoder
+ fieldHash8 int64
+ fieldDecoder8 *structFieldDecoder
+ fieldHash9 int64
+ fieldDecoder9 *structFieldDecoder
+ fieldHash10 int64
+ fieldDecoder10 *structFieldDecoder
+}
+
+func (decoder *tenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ if !iter.readObjectStart() {
+ return
+ }
+ for {
+ switch iter.readFieldHash() {
+ case decoder.fieldHash1:
+ decoder.fieldDecoder1.Decode(ptr, iter)
+ case decoder.fieldHash2:
+ decoder.fieldDecoder2.Decode(ptr, iter)
+ case decoder.fieldHash3:
+ decoder.fieldDecoder3.Decode(ptr, iter)
+ case decoder.fieldHash4:
+ decoder.fieldDecoder4.Decode(ptr, iter)
+ case decoder.fieldHash5:
+ decoder.fieldDecoder5.Decode(ptr, iter)
+ case decoder.fieldHash6:
+ decoder.fieldDecoder6.Decode(ptr, iter)
+ case decoder.fieldHash7:
+ decoder.fieldDecoder7.Decode(ptr, iter)
+ case decoder.fieldHash8:
+ decoder.fieldDecoder8.Decode(ptr, iter)
+ case decoder.fieldHash9:
+ decoder.fieldDecoder9.Decode(ptr, iter)
+ case decoder.fieldHash10:
+ decoder.fieldDecoder10.Decode(ptr, iter)
+ default:
+ iter.Skip()
+ }
+ if iter.isObjectEnd() {
+ break
+ }
+ }
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
+ }
+}
+
+type structFieldDecoder struct {
+ field reflect2.StructField
+ fieldDecoder ValDecoder
+}
+
+func (decoder *structFieldDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ fieldPtr := decoder.field.UnsafeGet(ptr)
+ decoder.fieldDecoder.Decode(fieldPtr, iter)
+ if iter.Error != nil && iter.Error != io.EOF {
+ iter.Error = fmt.Errorf("%s: %s", decoder.field.Name(), iter.Error.Error())
+ }
+}
+
+type stringModeStringDecoder struct {
+ elemDecoder ValDecoder
+ cfg *frozenConfig
+}
+
+func (decoder *stringModeStringDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ decoder.elemDecoder.Decode(ptr, iter)
+ str := *((*string)(ptr))
+ tempIter := decoder.cfg.BorrowIterator([]byte(str))
+ defer decoder.cfg.ReturnIterator(tempIter)
+ *((*string)(ptr)) = tempIter.ReadString()
+}
+
+type stringModeNumberDecoder struct {
+ elemDecoder ValDecoder
+}
+
+func (decoder *stringModeNumberDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
+ c := iter.nextToken()
+ if c != '"' {
+ iter.ReportError("stringModeNumberDecoder", `expect ", but found `+string([]byte{c}))
+ return
+ }
+ decoder.elemDecoder.Decode(ptr, iter)
+ if iter.Error != nil {
+ return
+ }
+ c = iter.readByte()
+ if c != '"' {
+ iter.ReportError("stringModeNumberDecoder", `expect ", but found `+string([]byte{c}))
+ return
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_struct_encoder.go b/vendor/github.com/json-iterator/go/reflect_struct_encoder.go
new file mode 100644
index 000000000..d0759cf64
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/reflect_struct_encoder.go
@@ -0,0 +1,210 @@
+package jsoniter
+
+import (
+ "fmt"
+ "github.com/modern-go/reflect2"
+ "io"
+ "reflect"
+ "unsafe"
+)
+
+func encoderOfStruct(ctx *ctx, typ reflect2.Type) ValEncoder {
+ type bindingTo struct {
+ binding *Binding
+ toName string
+ ignored bool
+ }
+ orderedBindings := []*bindingTo{}
+ structDescriptor := describeStruct(ctx, typ)
+ for _, binding := range structDescriptor.Fields {
+ for _, toName := range binding.ToNames {
+ new := &bindingTo{
+ binding: binding,
+ toName: toName,
+ }
+ for _, old := range orderedBindings {
+ if old.toName != toName {
+ continue
+ }
+ old.ignored, new.ignored = resolveConflictBinding(ctx.frozenConfig, old.binding, new.binding)
+ }
+ orderedBindings = append(orderedBindings, new)
+ }
+ }
+ if len(orderedBindings) == 0 {
+ return &emptyStructEncoder{}
+ }
+ finalOrderedFields := []structFieldTo{}
+ for _, bindingTo := range orderedBindings {
+ if !bindingTo.ignored {
+ finalOrderedFields = append(finalOrderedFields, structFieldTo{
+ encoder: bindingTo.binding.Encoder.(*structFieldEncoder),
+ toName: bindingTo.toName,
+ })
+ }
+ }
+ return &structEncoder{typ, finalOrderedFields}
+}
+
+func createCheckIsEmpty(ctx *ctx, typ reflect2.Type) checkIsEmpty {
+ encoder := createEncoderOfNative(ctx, typ)
+ if encoder != nil {
+ return encoder
+ }
+ kind := typ.Kind()
+ switch kind {
+ case reflect.Interface:
+ return &dynamicEncoder{typ}
+ case reflect.Struct:
+ return &structEncoder{typ: typ}
+ case reflect.Array:
+ return &arrayEncoder{}
+ case reflect.Slice:
+ return &sliceEncoder{}
+ case reflect.Map:
+ return encoderOfMap(ctx, typ)
+ case reflect.Ptr:
+ return &OptionalEncoder{}
+ default:
+ return &lazyErrorEncoder{err: fmt.Errorf("unsupported type: %v", typ)}
+ }
+}
+
+func resolveConflictBinding(cfg *frozenConfig, old, new *Binding) (ignoreOld, ignoreNew bool) {
+ newTagged := new.Field.Tag().Get(cfg.getTagKey()) != ""
+ oldTagged := old.Field.Tag().Get(cfg.getTagKey()) != ""
+ if newTagged {
+ if oldTagged {
+ if len(old.levels) > len(new.levels) {
+ return true, false
+ } else if len(new.levels) > len(old.levels) {
+ return false, true
+ } else {
+ return true, true
+ }
+ } else {
+ return true, false
+ }
+ } else {
+ if oldTagged {
+ return true, false
+ }
+ if len(old.levels) > len(new.levels) {
+ return true, false
+ } else if len(new.levels) > len(old.levels) {
+ return false, true
+ } else {
+ return true, true
+ }
+ }
+}
+
+type structFieldEncoder struct {
+ field reflect2.StructField
+ fieldEncoder ValEncoder
+ omitempty bool
+}
+
+func (encoder *structFieldEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ fieldPtr := encoder.field.UnsafeGet(ptr)
+ encoder.fieldEncoder.Encode(fieldPtr, stream)
+ if stream.Error != nil && stream.Error != io.EOF {
+ stream.Error = fmt.Errorf("%s: %s", encoder.field.Name(), stream.Error.Error())
+ }
+}
+
+func (encoder *structFieldEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ fieldPtr := encoder.field.UnsafeGet(ptr)
+ return encoder.fieldEncoder.IsEmpty(fieldPtr)
+}
+
+func (encoder *structFieldEncoder) IsEmbeddedPtrNil(ptr unsafe.Pointer) bool {
+ isEmbeddedPtrNil, converted := encoder.fieldEncoder.(IsEmbeddedPtrNil)
+ if !converted {
+ return false
+ }
+ fieldPtr := encoder.field.UnsafeGet(ptr)
+ return isEmbeddedPtrNil.IsEmbeddedPtrNil(fieldPtr)
+}
+
+type IsEmbeddedPtrNil interface {
+ IsEmbeddedPtrNil(ptr unsafe.Pointer) bool
+}
+
+type structEncoder struct {
+ typ reflect2.Type
+ fields []structFieldTo
+}
+
+type structFieldTo struct {
+ encoder *structFieldEncoder
+ toName string
+}
+
+func (encoder *structEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteObjectStart()
+ isNotFirst := false
+ for _, field := range encoder.fields {
+ if field.encoder.omitempty && field.encoder.IsEmpty(ptr) {
+ continue
+ }
+ if field.encoder.IsEmbeddedPtrNil(ptr) {
+ continue
+ }
+ if isNotFirst {
+ stream.WriteMore()
+ }
+ stream.WriteObjectField(field.toName)
+ field.encoder.Encode(ptr, stream)
+ isNotFirst = true
+ }
+ stream.WriteObjectEnd()
+ if stream.Error != nil && stream.Error != io.EOF {
+ stream.Error = fmt.Errorf("%v.%s", encoder.typ, stream.Error.Error())
+ }
+}
+
+func (encoder *structEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return false
+}
+
+type emptyStructEncoder struct {
+}
+
+func (encoder *emptyStructEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.WriteEmptyObject()
+}
+
+func (encoder *emptyStructEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return false
+}
+
+type stringModeNumberEncoder struct {
+ elemEncoder ValEncoder
+}
+
+func (encoder *stringModeNumberEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ stream.writeByte('"')
+ encoder.elemEncoder.Encode(ptr, stream)
+ stream.writeByte('"')
+}
+
+func (encoder *stringModeNumberEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.elemEncoder.IsEmpty(ptr)
+}
+
+type stringModeStringEncoder struct {
+ elemEncoder ValEncoder
+ cfg *frozenConfig
+}
+
+func (encoder *stringModeStringEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ tempStream := encoder.cfg.BorrowStream(nil)
+ defer encoder.cfg.ReturnStream(tempStream)
+ encoder.elemEncoder.Encode(ptr, tempStream)
+ stream.WriteString(string(tempStream.Buffer()))
+}
+
+func (encoder *stringModeStringEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ return encoder.elemEncoder.IsEmpty(ptr)
+}
diff --git a/vendor/github.com/json-iterator/go/stream.go b/vendor/github.com/json-iterator/go/stream.go
new file mode 100644
index 000000000..17662fded
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/stream.go
@@ -0,0 +1,211 @@
+package jsoniter
+
+import (
+ "io"
+)
+
+// stream is a io.Writer like object, with JSON specific write functions.
+// Error is not returned as return value, but stored as Error member on this stream instance.
+type Stream struct {
+ cfg *frozenConfig
+ out io.Writer
+ buf []byte
+ Error error
+ indention int
+ Attachment interface{} // open for customized encoder
+}
+
+// NewStream create new stream instance.
+// cfg can be jsoniter.ConfigDefault.
+// out can be nil if write to internal buffer.
+// bufSize is the initial size for the internal buffer in bytes.
+func NewStream(cfg API, out io.Writer, bufSize int) *Stream {
+ return &Stream{
+ cfg: cfg.(*frozenConfig),
+ out: out,
+ buf: make([]byte, 0, bufSize),
+ Error: nil,
+ indention: 0,
+ }
+}
+
+// Pool returns a pool can provide more stream with same configuration
+func (stream *Stream) Pool() StreamPool {
+ return stream.cfg
+}
+
+// Reset reuse this stream instance by assign a new writer
+func (stream *Stream) Reset(out io.Writer) {
+ stream.out = out
+ stream.buf = stream.buf[:0]
+}
+
+// Available returns how many bytes are unused in the buffer.
+func (stream *Stream) Available() int {
+ return cap(stream.buf) - len(stream.buf)
+}
+
+// Buffered returns the number of bytes that have been written into the current buffer.
+func (stream *Stream) Buffered() int {
+ return len(stream.buf)
+}
+
+// Buffer if writer is nil, use this method to take the result
+func (stream *Stream) Buffer() []byte {
+ return stream.buf
+}
+
+// SetBuffer allows to append to the internal buffer directly
+func (stream *Stream) SetBuffer(buf []byte) {
+ stream.buf = buf
+}
+
+// Write writes the contents of p into the buffer.
+// It returns the number of bytes written.
+// If nn < len(p), it also returns an error explaining
+// why the write is short.
+func (stream *Stream) Write(p []byte) (nn int, err error) {
+ stream.buf = append(stream.buf, p...)
+ if stream.out != nil {
+ nn, err = stream.out.Write(stream.buf)
+ stream.buf = stream.buf[nn:]
+ return
+ }
+ return len(p), nil
+}
+
+// WriteByte writes a single byte.
+func (stream *Stream) writeByte(c byte) {
+ stream.buf = append(stream.buf, c)
+}
+
+func (stream *Stream) writeTwoBytes(c1 byte, c2 byte) {
+ stream.buf = append(stream.buf, c1, c2)
+}
+
+func (stream *Stream) writeThreeBytes(c1 byte, c2 byte, c3 byte) {
+ stream.buf = append(stream.buf, c1, c2, c3)
+}
+
+func (stream *Stream) writeFourBytes(c1 byte, c2 byte, c3 byte, c4 byte) {
+ stream.buf = append(stream.buf, c1, c2, c3, c4)
+}
+
+func (stream *Stream) writeFiveBytes(c1 byte, c2 byte, c3 byte, c4 byte, c5 byte) {
+ stream.buf = append(stream.buf, c1, c2, c3, c4, c5)
+}
+
+// Flush writes any buffered data to the underlying io.Writer.
+func (stream *Stream) Flush() error {
+ if stream.out == nil {
+ return nil
+ }
+ if stream.Error != nil {
+ return stream.Error
+ }
+ n, err := stream.out.Write(stream.buf)
+ if err != nil {
+ if stream.Error == nil {
+ stream.Error = err
+ }
+ return err
+ }
+ stream.buf = stream.buf[n:]
+ return nil
+}
+
+// WriteRaw write string out without quotes, just like []byte
+func (stream *Stream) WriteRaw(s string) {
+ stream.buf = append(stream.buf, s...)
+}
+
+// WriteNil write null to stream
+func (stream *Stream) WriteNil() {
+ stream.writeFourBytes('n', 'u', 'l', 'l')
+}
+
+// WriteTrue write true to stream
+func (stream *Stream) WriteTrue() {
+ stream.writeFourBytes('t', 'r', 'u', 'e')
+}
+
+// WriteFalse write false to stream
+func (stream *Stream) WriteFalse() {
+ stream.writeFiveBytes('f', 'a', 'l', 's', 'e')
+}
+
+// WriteBool write true or false into stream
+func (stream *Stream) WriteBool(val bool) {
+ if val {
+ stream.WriteTrue()
+ } else {
+ stream.WriteFalse()
+ }
+}
+
+// WriteObjectStart write { with possible indention
+func (stream *Stream) WriteObjectStart() {
+ stream.indention += stream.cfg.indentionStep
+ stream.writeByte('{')
+ stream.writeIndention(0)
+}
+
+// WriteObjectField write "field": with possible indention
+func (stream *Stream) WriteObjectField(field string) {
+ stream.WriteString(field)
+ if stream.indention > 0 {
+ stream.writeTwoBytes(':', ' ')
+ } else {
+ stream.writeByte(':')
+ }
+}
+
+// WriteObjectEnd write } with possible indention
+func (stream *Stream) WriteObjectEnd() {
+ stream.writeIndention(stream.cfg.indentionStep)
+ stream.indention -= stream.cfg.indentionStep
+ stream.writeByte('}')
+}
+
+// WriteEmptyObject write {}
+func (stream *Stream) WriteEmptyObject() {
+ stream.writeByte('{')
+ stream.writeByte('}')
+}
+
+// WriteMore write , with possible indention
+func (stream *Stream) WriteMore() {
+ stream.writeByte(',')
+ stream.writeIndention(0)
+ stream.Flush()
+}
+
+// WriteArrayStart write [ with possible indention
+func (stream *Stream) WriteArrayStart() {
+ stream.indention += stream.cfg.indentionStep
+ stream.writeByte('[')
+ stream.writeIndention(0)
+}
+
+// WriteEmptyArray write []
+func (stream *Stream) WriteEmptyArray() {
+ stream.writeTwoBytes('[', ']')
+}
+
+// WriteArrayEnd write ] with possible indention
+func (stream *Stream) WriteArrayEnd() {
+ stream.writeIndention(stream.cfg.indentionStep)
+ stream.indention -= stream.cfg.indentionStep
+ stream.writeByte(']')
+}
+
+func (stream *Stream) writeIndention(delta int) {
+ if stream.indention == 0 {
+ return
+ }
+ stream.writeByte('\n')
+ toWrite := stream.indention - delta
+ for i := 0; i < toWrite; i++ {
+ stream.buf = append(stream.buf, ' ')
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/stream_float.go b/vendor/github.com/json-iterator/go/stream_float.go
new file mode 100644
index 000000000..f318d2c59
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/stream_float.go
@@ -0,0 +1,94 @@
+package jsoniter
+
+import (
+ "math"
+ "strconv"
+)
+
+var pow10 []uint64
+
+func init() {
+ pow10 = []uint64{1, 10, 100, 1000, 10000, 100000, 1000000}
+}
+
+// WriteFloat32 write float32 to stream
+func (stream *Stream) WriteFloat32(val float32) {
+ abs := math.Abs(float64(val))
+ fmt := byte('f')
+ // Note: Must use float32 comparisons for underlying float32 value to get precise cutoffs right.
+ if abs != 0 {
+ if float32(abs) < 1e-6 || float32(abs) >= 1e21 {
+ fmt = 'e'
+ }
+ }
+ stream.buf = strconv.AppendFloat(stream.buf, float64(val), fmt, -1, 32)
+}
+
+// WriteFloat32Lossy write float32 to stream with ONLY 6 digits precision although much much faster
+func (stream *Stream) WriteFloat32Lossy(val float32) {
+ if val < 0 {
+ stream.writeByte('-')
+ val = -val
+ }
+ if val > 0x4ffffff {
+ stream.WriteFloat32(val)
+ return
+ }
+ precision := 6
+ exp := uint64(1000000) // 6
+ lval := uint64(float64(val)*float64(exp) + 0.5)
+ stream.WriteUint64(lval / exp)
+ fval := lval % exp
+ if fval == 0 {
+ return
+ }
+ stream.writeByte('.')
+ for p := precision - 1; p > 0 && fval < pow10[p]; p-- {
+ stream.writeByte('0')
+ }
+ stream.WriteUint64(fval)
+ for stream.buf[len(stream.buf)-1] == '0' {
+ stream.buf = stream.buf[:len(stream.buf)-1]
+ }
+}
+
+// WriteFloat64 write float64 to stream
+func (stream *Stream) WriteFloat64(val float64) {
+ abs := math.Abs(val)
+ fmt := byte('f')
+ // Note: Must use float32 comparisons for underlying float32 value to get precise cutoffs right.
+ if abs != 0 {
+ if abs < 1e-6 || abs >= 1e21 {
+ fmt = 'e'
+ }
+ }
+ stream.buf = strconv.AppendFloat(stream.buf, float64(val), fmt, -1, 64)
+}
+
+// WriteFloat64Lossy write float64 to stream with ONLY 6 digits precision although much much faster
+func (stream *Stream) WriteFloat64Lossy(val float64) {
+ if val < 0 {
+ stream.writeByte('-')
+ val = -val
+ }
+ if val > 0x4ffffff {
+ stream.WriteFloat64(val)
+ return
+ }
+ precision := 6
+ exp := uint64(1000000) // 6
+ lval := uint64(val*float64(exp) + 0.5)
+ stream.WriteUint64(lval / exp)
+ fval := lval % exp
+ if fval == 0 {
+ return
+ }
+ stream.writeByte('.')
+ for p := precision - 1; p > 0 && fval < pow10[p]; p-- {
+ stream.writeByte('0')
+ }
+ stream.WriteUint64(fval)
+ for stream.buf[len(stream.buf)-1] == '0' {
+ stream.buf = stream.buf[:len(stream.buf)-1]
+ }
+}
diff --git a/vendor/github.com/json-iterator/go/stream_int.go b/vendor/github.com/json-iterator/go/stream_int.go
new file mode 100644
index 000000000..d1059ee4c
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/stream_int.go
@@ -0,0 +1,190 @@
+package jsoniter
+
+var digits []uint32
+
+func init() {
+ digits = make([]uint32, 1000)
+ for i := uint32(0); i < 1000; i++ {
+ digits[i] = (((i / 100) + '0') << 16) + ((((i / 10) % 10) + '0') << 8) + i%10 + '0'
+ if i < 10 {
+ digits[i] += 2 << 24
+ } else if i < 100 {
+ digits[i] += 1 << 24
+ }
+ }
+}
+
+func writeFirstBuf(space []byte, v uint32) []byte {
+ start := v >> 24
+ if start == 0 {
+ space = append(space, byte(v>>16), byte(v>>8))
+ } else if start == 1 {
+ space = append(space, byte(v>>8))
+ }
+ space = append(space, byte(v))
+ return space
+}
+
+func writeBuf(buf []byte, v uint32) []byte {
+ return append(buf, byte(v>>16), byte(v>>8), byte(v))
+}
+
+// WriteUint8 write uint8 to stream
+func (stream *Stream) WriteUint8(val uint8) {
+ stream.buf = writeFirstBuf(stream.buf, digits[val])
+}
+
+// WriteInt8 write int8 to stream
+func (stream *Stream) WriteInt8(nval int8) {
+ var val uint8
+ if nval < 0 {
+ val = uint8(-nval)
+ stream.buf = append(stream.buf, '-')
+ } else {
+ val = uint8(nval)
+ }
+ stream.buf = writeFirstBuf(stream.buf, digits[val])
+}
+
+// WriteUint16 write uint16 to stream
+func (stream *Stream) WriteUint16(val uint16) {
+ q1 := val / 1000
+ if q1 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[val])
+ return
+ }
+ r1 := val - q1*1000
+ stream.buf = writeFirstBuf(stream.buf, digits[q1])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+ return
+}
+
+// WriteInt16 write int16 to stream
+func (stream *Stream) WriteInt16(nval int16) {
+ var val uint16
+ if nval < 0 {
+ val = uint16(-nval)
+ stream.buf = append(stream.buf, '-')
+ } else {
+ val = uint16(nval)
+ }
+ stream.WriteUint16(val)
+}
+
+// WriteUint32 write uint32 to stream
+func (stream *Stream) WriteUint32(val uint32) {
+ q1 := val / 1000
+ if q1 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[val])
+ return
+ }
+ r1 := val - q1*1000
+ q2 := q1 / 1000
+ if q2 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[q1])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+ return
+ }
+ r2 := q1 - q2*1000
+ q3 := q2 / 1000
+ if q3 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[q2])
+ } else {
+ r3 := q2 - q3*1000
+ stream.buf = append(stream.buf, byte(q3+'0'))
+ stream.buf = writeBuf(stream.buf, digits[r3])
+ }
+ stream.buf = writeBuf(stream.buf, digits[r2])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+}
+
+// WriteInt32 write int32 to stream
+func (stream *Stream) WriteInt32(nval int32) {
+ var val uint32
+ if nval < 0 {
+ val = uint32(-nval)
+ stream.buf = append(stream.buf, '-')
+ } else {
+ val = uint32(nval)
+ }
+ stream.WriteUint32(val)
+}
+
+// WriteUint64 write uint64 to stream
+func (stream *Stream) WriteUint64(val uint64) {
+ q1 := val / 1000
+ if q1 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[val])
+ return
+ }
+ r1 := val - q1*1000
+ q2 := q1 / 1000
+ if q2 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[q1])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+ return
+ }
+ r2 := q1 - q2*1000
+ q3 := q2 / 1000
+ if q3 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[q2])
+ stream.buf = writeBuf(stream.buf, digits[r2])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+ return
+ }
+ r3 := q2 - q3*1000
+ q4 := q3 / 1000
+ if q4 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[q3])
+ stream.buf = writeBuf(stream.buf, digits[r3])
+ stream.buf = writeBuf(stream.buf, digits[r2])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+ return
+ }
+ r4 := q3 - q4*1000
+ q5 := q4 / 1000
+ if q5 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[q4])
+ stream.buf = writeBuf(stream.buf, digits[r4])
+ stream.buf = writeBuf(stream.buf, digits[r3])
+ stream.buf = writeBuf(stream.buf, digits[r2])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+ return
+ }
+ r5 := q4 - q5*1000
+ q6 := q5 / 1000
+ if q6 == 0 {
+ stream.buf = writeFirstBuf(stream.buf, digits[q5])
+ } else {
+ stream.buf = writeFirstBuf(stream.buf, digits[q6])
+ r6 := q5 - q6*1000
+ stream.buf = writeBuf(stream.buf, digits[r6])
+ }
+ stream.buf = writeBuf(stream.buf, digits[r5])
+ stream.buf = writeBuf(stream.buf, digits[r4])
+ stream.buf = writeBuf(stream.buf, digits[r3])
+ stream.buf = writeBuf(stream.buf, digits[r2])
+ stream.buf = writeBuf(stream.buf, digits[r1])
+}
+
+// WriteInt64 write int64 to stream
+func (stream *Stream) WriteInt64(nval int64) {
+ var val uint64
+ if nval < 0 {
+ val = uint64(-nval)
+ stream.buf = append(stream.buf, '-')
+ } else {
+ val = uint64(nval)
+ }
+ stream.WriteUint64(val)
+}
+
+// WriteInt write int to stream
+func (stream *Stream) WriteInt(val int) {
+ stream.WriteInt64(int64(val))
+}
+
+// WriteUint write uint to stream
+func (stream *Stream) WriteUint(val uint) {
+ stream.WriteUint64(uint64(val))
+}
diff --git a/vendor/github.com/json-iterator/go/stream_str.go b/vendor/github.com/json-iterator/go/stream_str.go
new file mode 100644
index 000000000..54c2ba0b3
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/stream_str.go
@@ -0,0 +1,372 @@
+package jsoniter
+
+import (
+ "unicode/utf8"
+)
+
+// htmlSafeSet holds the value true if the ASCII character with the given
+// array position can be safely represented inside a JSON string, embedded
+// inside of HTML